@vsn-ux/ngx-gaia 0.1.5 → 0.2.0
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.
- package/fesm2022/vsn-ux-ngx-gaia.mjs +203 -17
- package/fesm2022/vsn-ux-ngx-gaia.mjs.map +1 -1
- package/lib/checkbox/checkbox.component.d.ts +5 -0
- package/lib/menu/index.d.ts +1 -0
- package/lib/menu/menu-trigger-icon.component.d.ts +9 -0
- package/lib/menu/menu-trigger.directive.d.ts +2 -1
- package/lib/menu/menu.module.d.ts +2 -1
- package/lib/radio/index.d.ts +3 -0
- package/lib/radio/radio-button.component.d.ts +32 -0
- package/lib/radio/radio-group.component.d.ts +39 -0
- package/lib/radio/radio.module.d.ts +8 -0
- package/package.json +2 -2
- package/public-api.d.ts +1 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, ElementRef, input, numberAttribute, Component, ViewEncapsulation, Attribute, NgModule, ChangeDetectionStrategy, Injectable, makeEnvironmentProviders, booleanAttribute, output, computed, contentChild, forwardRef, Injector, signal, linkedSignal, Directive, model, HostListener, InjectionToken, effect, TemplateRef, NgZone, Input } from '@angular/core';
|
|
3
3
|
import * as i1 from 'lucide-angular';
|
|
4
|
-
import { LucideAngularModule, X, CircleCheck, TriangleAlert, OctagonAlert, Info } from 'lucide-angular';
|
|
4
|
+
import { LucideAngularModule, X, CircleCheck, TriangleAlert, OctagonAlert, Info, Minus, Check, ChevronUp, ChevronDown } from 'lucide-angular';
|
|
5
5
|
import { NG_VALUE_ACCESSOR, NgControl, NG_VALIDATORS, CheckboxRequiredValidator } from '@angular/forms';
|
|
6
6
|
import * as i1$1 from '@angular/cdk/menu';
|
|
7
7
|
import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';
|
|
8
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
9
|
+
import { merge, map, Subject, takeUntil } from 'rxjs';
|
|
8
10
|
import { Overlay } from '@angular/cdk/overlay';
|
|
9
11
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
10
|
-
import { Subject, takeUntil, map } from 'rxjs';
|
|
11
12
|
import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
|
|
12
13
|
import { NgTemplateOutlet } from '@angular/common';
|
|
13
14
|
|
|
@@ -316,13 +317,14 @@ const CHECKBOX_CONTROL_VALUE_ACCESSOR = {
|
|
|
316
317
|
};
|
|
317
318
|
// Increasing integer for generating unique ids for checkbox components.
|
|
318
319
|
// Inspired by @angular/components
|
|
319
|
-
let nextUniqueId$
|
|
320
|
+
let nextUniqueId$4 = 0;
|
|
320
321
|
class GaCheckboxComponent {
|
|
321
322
|
tabindex;
|
|
322
323
|
/** @ignore */
|
|
323
|
-
_uniqueId = `ga-checkbox-${++nextUniqueId$
|
|
324
|
+
_uniqueId = `ga-checkbox-${++nextUniqueId$4}`;
|
|
324
325
|
/** @ignore */
|
|
325
326
|
injector = inject(Injector);
|
|
327
|
+
icons = { Minus, Check };
|
|
326
328
|
/** @ignore */
|
|
327
329
|
_onTouched;
|
|
328
330
|
/** @ignore */
|
|
@@ -419,11 +421,11 @@ class GaCheckboxComponent {
|
|
|
419
421
|
this.change.emit(this.checkedModel());
|
|
420
422
|
}
|
|
421
423
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaCheckboxComponent, deps: [{ token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
422
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaCheckboxComponent, isStandalone: true, selector: "ga-checkbox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, nameInput: { classPropertyName: "nameInput", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalid: { classPropertyName: "ariaInvalid", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, ariaErrormessage: { classPropertyName: "ariaErrormessage", publicName: "aria-errormessage", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "class.ga-checkbox--invalid": "invalid()", "attr.id": "null", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "attr.aria-invalid": "null", "attr.aria-errormessage": "null" }, classAttribute: "ga-checkbox" }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<input\n type=\"checkbox\"\n class=\"ga-checkbox__native\"\n [attr.id]=\"inputId()\"\n [name]=\"name()\"\n [checked]=\"checkedModel()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabledModel()\"\n [required]=\"required()\"\n [attr.value]=\"value()\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n<div class=\"ga-checkbox__marker\">\n <
|
|
424
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaCheckboxComponent, isStandalone: true, selector: "ga-checkbox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, nameInput: { classPropertyName: "nameInput", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalid: { classPropertyName: "ariaInvalid", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, ariaErrormessage: { classPropertyName: "ariaErrormessage", publicName: "aria-errormessage", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "class.ga-checkbox--invalid": "invalid()", "attr.id": "null", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "attr.aria-invalid": "null", "attr.aria-errormessage": "null" }, classAttribute: "ga-checkbox" }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<input\n type=\"checkbox\"\n class=\"ga-checkbox__native\"\n [attr.id]=\"inputId()\"\n [name]=\"name()\"\n [checked]=\"checkedModel()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabledModel()\"\n [required]=\"required()\"\n [attr.value]=\"value()\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n<div class=\"ga-checkbox__marker\">\n <lucide-icon\n [img]=\"icons.Check\"\n class=\"ga-checkbox__marker__indicator-checked\"\n [size]=\"12\"\n [strokeWidth]=\"2\"\n [absoluteStrokeWidth]=\"true\"\n />\n <lucide-icon\n [img]=\"icons.Minus\"\n class=\"ga-checkbox__marker__indicator-indeterminate\"\n [size]=\"12\"\n [strokeWidth]=\"2\"\n [absoluteStrokeWidth]=\"true\"\n />\n</div>\n\n<label class=\"ga-checkbox__label\" [attr.for]=\"inputId()\"\n ><ng-content></ng-content\n></label>\n", dependencies: [{ kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
423
425
|
}
|
|
424
426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaCheckboxComponent, decorators: [{
|
|
425
427
|
type: Component,
|
|
426
|
-
args: [{ selector: 'ga-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], host: {
|
|
428
|
+
args: [{ selector: 'ga-checkbox', imports: [LucideAngularModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], host: {
|
|
427
429
|
class: 'ga-checkbox',
|
|
428
430
|
'[class.ga-checkbox--invalid]': 'invalid()',
|
|
429
431
|
'[attr.id]': 'null',
|
|
@@ -433,7 +435,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
433
435
|
'[attr.aria-describedby]': 'null',
|
|
434
436
|
'[attr.aria-invalid]': 'null',
|
|
435
437
|
'[attr.aria-errormessage]': 'null',
|
|
436
|
-
}, template: "<input\n type=\"checkbox\"\n class=\"ga-checkbox__native\"\n [attr.id]=\"inputId()\"\n [name]=\"name()\"\n [checked]=\"checkedModel()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabledModel()\"\n [required]=\"required()\"\n [attr.value]=\"value()\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n<div class=\"ga-checkbox__marker\">\n <
|
|
438
|
+
}, template: "<input\n type=\"checkbox\"\n class=\"ga-checkbox__native\"\n [attr.id]=\"inputId()\"\n [name]=\"name()\"\n [checked]=\"checkedModel()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabledModel()\"\n [required]=\"required()\"\n [attr.value]=\"value()\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n<div class=\"ga-checkbox__marker\">\n <lucide-icon\n [img]=\"icons.Check\"\n class=\"ga-checkbox__marker__indicator-checked\"\n [size]=\"12\"\n [strokeWidth]=\"2\"\n [absoluteStrokeWidth]=\"true\"\n />\n <lucide-icon\n [img]=\"icons.Minus\"\n class=\"ga-checkbox__marker__indicator-indeterminate\"\n [size]=\"12\"\n [strokeWidth]=\"2\"\n [absoluteStrokeWidth]=\"true\"\n />\n</div>\n\n<label class=\"ga-checkbox__label\" [attr.for]=\"inputId()\"\n ><ng-content></ng-content\n></label>\n" }]
|
|
437
439
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
438
440
|
type: Attribute,
|
|
439
441
|
args: ['tabindex']
|
|
@@ -464,7 +466,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
464
466
|
class GaCheckboxModule {
|
|
465
467
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
466
468
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: GaCheckboxModule, imports: [GaCheckboxComponent, GaCheckboxRequiredValidator], exports: [GaCheckboxComponent, GaCheckboxRequiredValidator] });
|
|
467
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaCheckboxModule });
|
|
469
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaCheckboxModule, imports: [GaCheckboxComponent] });
|
|
468
470
|
}
|
|
469
471
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaCheckboxModule, decorators: [{
|
|
470
472
|
type: NgModule,
|
|
@@ -580,9 +582,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
580
582
|
}]
|
|
581
583
|
}] });
|
|
582
584
|
|
|
583
|
-
let nextUniqueId$
|
|
585
|
+
let nextUniqueId$3 = 0;
|
|
584
586
|
class GaInputDirective {
|
|
585
|
-
uniqueId = `ga-input-${++nextUniqueId$
|
|
587
|
+
uniqueId = `ga-input-${++nextUniqueId$3}`;
|
|
586
588
|
implicitNgControl = inject(NgControl, {
|
|
587
589
|
optional: true,
|
|
588
590
|
self: true,
|
|
@@ -640,9 +642,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
640
642
|
}]
|
|
641
643
|
}] });
|
|
642
644
|
|
|
643
|
-
let nextUniqueId = 0;
|
|
645
|
+
let nextUniqueId$2 = 0;
|
|
644
646
|
class GaFormFieldComponent {
|
|
645
|
-
uniqueId = `ga-form-field-${++nextUniqueId}`;
|
|
647
|
+
uniqueId = `ga-form-field-${++nextUniqueId$2}`;
|
|
646
648
|
formControl = contentChild(GA_FORM_CONTROL);
|
|
647
649
|
controlId = computed(() => {
|
|
648
650
|
return this.formControl()?.id() ?? this.uniqueId;
|
|
@@ -771,18 +773,20 @@ class GaMenuTriggerDirective {
|
|
|
771
773
|
menuRef = input.required({
|
|
772
774
|
alias: 'gaMenuTrigger',
|
|
773
775
|
});
|
|
776
|
+
isOpen = toSignal(merge(this.cdkMenuTrigger.opened.pipe(map(() => true)), this.cdkMenuTrigger.closed.pipe(map(() => false))), { initialValue: this.cdkMenuTrigger.isOpen() });
|
|
774
777
|
constructor() {
|
|
775
778
|
effect(() => {
|
|
776
779
|
this.cdkMenuTrigger.menuTemplateRef = this.menuRef();
|
|
777
780
|
});
|
|
778
781
|
}
|
|
779
782
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
780
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.5", type: GaMenuTriggerDirective, isStandalone: true, selector: "[gaMenuTrigger]", inputs: { menuRef: { classPropertyName: "menuRef", publicName: "gaMenuTrigger", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: i1$1.CdkMenuTrigger }], ngImport: i0 });
|
|
783
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.5", type: GaMenuTriggerDirective, isStandalone: true, selector: "[gaMenuTrigger]", inputs: { menuRef: { classPropertyName: "menuRef", publicName: "gaMenuTrigger", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["gaMenuTrigger"], hostDirectives: [{ directive: i1$1.CdkMenuTrigger }], ngImport: i0 });
|
|
781
784
|
}
|
|
782
785
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuTriggerDirective, decorators: [{
|
|
783
786
|
type: Directive,
|
|
784
787
|
args: [{
|
|
785
788
|
selector: '[gaMenuTrigger]',
|
|
789
|
+
exportAs: 'gaMenuTrigger',
|
|
786
790
|
standalone: true,
|
|
787
791
|
hostDirectives: [CdkMenuTrigger],
|
|
788
792
|
}]
|
|
@@ -803,18 +807,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
803
807
|
}]
|
|
804
808
|
}] });
|
|
805
809
|
|
|
810
|
+
class GaMenuTriggerIconComponent {
|
|
811
|
+
menuTrigger = inject(GaMenuTriggerDirective);
|
|
812
|
+
icon = computed(() => {
|
|
813
|
+
return this.menuTrigger.isOpen() ? ChevronUp : ChevronDown;
|
|
814
|
+
});
|
|
815
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuTriggerIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
816
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: GaMenuTriggerIconComponent, isStandalone: true, selector: "ga-menu-trigger-icon", ngImport: i0, template: `<ga-icon [icon]="icon()" />`, isInline: true, dependencies: [{ kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }] });
|
|
817
|
+
}
|
|
818
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuTriggerIconComponent, decorators: [{
|
|
819
|
+
type: Component,
|
|
820
|
+
args: [{
|
|
821
|
+
selector: 'ga-menu-trigger-icon',
|
|
822
|
+
imports: [GaIconModule],
|
|
823
|
+
template: `<ga-icon [icon]="icon()" />`,
|
|
824
|
+
}]
|
|
825
|
+
}] });
|
|
826
|
+
|
|
806
827
|
class GaMenuModule {
|
|
807
828
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
808
829
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: GaMenuModule, imports: [GaMenuComponent,
|
|
809
830
|
GaMenuItemComponent,
|
|
810
831
|
GaMenuTriggerDirective,
|
|
811
832
|
GaMenuSeparatorComponent,
|
|
812
|
-
GaMenuTitleComponent
|
|
833
|
+
GaMenuTitleComponent,
|
|
834
|
+
GaMenuTriggerIconComponent], exports: [GaMenuComponent,
|
|
813
835
|
GaMenuItemComponent,
|
|
814
836
|
GaMenuTriggerDirective,
|
|
815
837
|
GaMenuSeparatorComponent,
|
|
816
|
-
GaMenuTitleComponent
|
|
817
|
-
|
|
838
|
+
GaMenuTitleComponent,
|
|
839
|
+
GaMenuTriggerIconComponent] });
|
|
840
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuModule, imports: [GaMenuTriggerIconComponent] });
|
|
818
841
|
}
|
|
819
842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuModule, decorators: [{
|
|
820
843
|
type: NgModule,
|
|
@@ -825,6 +848,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
825
848
|
GaMenuTriggerDirective,
|
|
826
849
|
GaMenuSeparatorComponent,
|
|
827
850
|
GaMenuTitleComponent,
|
|
851
|
+
GaMenuTriggerIconComponent,
|
|
828
852
|
],
|
|
829
853
|
exports: [
|
|
830
854
|
GaMenuComponent,
|
|
@@ -832,6 +856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
832
856
|
GaMenuTriggerDirective,
|
|
833
857
|
GaMenuSeparatorComponent,
|
|
834
858
|
GaMenuTitleComponent,
|
|
859
|
+
GaMenuTriggerIconComponent,
|
|
835
860
|
],
|
|
836
861
|
}]
|
|
837
862
|
}] });
|
|
@@ -1304,6 +1329,167 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
1304
1329
|
}]
|
|
1305
1330
|
}] });
|
|
1306
1331
|
|
|
1332
|
+
/**
|
|
1333
|
+
* Provider Expression that allows ga-radio-group to register as a ControlValueAccessor.
|
|
1334
|
+
* This allows it to support [(ngModel)] and ngControl.
|
|
1335
|
+
*/
|
|
1336
|
+
const RADIO_CONTROL_VALUE_ACCESSOR = {
|
|
1337
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1338
|
+
useExisting: forwardRef(() => GaRadioGroupComponent),
|
|
1339
|
+
multi: true,
|
|
1340
|
+
};
|
|
1341
|
+
// Increasing integer for generating unique ids for radio components.
|
|
1342
|
+
let nextUniqueId$1 = 0;
|
|
1343
|
+
class GaRadioGroupComponent {
|
|
1344
|
+
/** Name of the radio button group. All radio buttons inside this group will use this name. */
|
|
1345
|
+
name = input(`ga-radio-group-${nextUniqueId$1++}`);
|
|
1346
|
+
/**
|
|
1347
|
+
* Value for the radio-group. Should equal the value of the selected radio button if there is
|
|
1348
|
+
* a corresponding radio button with a matching value. If there is not such a corresponding
|
|
1349
|
+
* radio button, this value persists to be applied in case a new radio button is added with a
|
|
1350
|
+
* matching value.
|
|
1351
|
+
*/
|
|
1352
|
+
value = input(null);
|
|
1353
|
+
/** Whether the radio group is disabled */
|
|
1354
|
+
disabled = input(false, { transform: booleanAttribute });
|
|
1355
|
+
/**
|
|
1356
|
+
* Event emitted when the group value changes.
|
|
1357
|
+
* Change events are only emitted when the value changes due to user interaction with
|
|
1358
|
+
* a radio button (the same behavior as `<input type="radio">`).
|
|
1359
|
+
*/
|
|
1360
|
+
change = output();
|
|
1361
|
+
valueModel = linkedSignal(() => this.value());
|
|
1362
|
+
disabledModel = linkedSignal(() => this.disabled());
|
|
1363
|
+
_onTouched;
|
|
1364
|
+
_onModelChanged;
|
|
1365
|
+
registerOnChange(fn) {
|
|
1366
|
+
this._onModelChanged = fn;
|
|
1367
|
+
}
|
|
1368
|
+
registerOnTouched(fn) {
|
|
1369
|
+
this._onTouched = fn;
|
|
1370
|
+
}
|
|
1371
|
+
writeValue(value) {
|
|
1372
|
+
this.valueModel.set(value);
|
|
1373
|
+
}
|
|
1374
|
+
setDisabledState(isDisabled) {
|
|
1375
|
+
this.disabledModel.set(isDisabled);
|
|
1376
|
+
}
|
|
1377
|
+
onValueChange(value) {
|
|
1378
|
+
if (this.valueModel() === value) {
|
|
1379
|
+
return;
|
|
1380
|
+
}
|
|
1381
|
+
this.valueModel.set(value);
|
|
1382
|
+
this.change.emit(value);
|
|
1383
|
+
if (this._onModelChanged) {
|
|
1384
|
+
this._onModelChanged(value);
|
|
1385
|
+
}
|
|
1386
|
+
}
|
|
1387
|
+
onBlur() {
|
|
1388
|
+
if (this._onTouched) {
|
|
1389
|
+
this._onTouched();
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1393
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaRadioGroupComponent, isStandalone: true, selector: "ga-radio-group", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { attributes: { "role": "radiogroup" }, classAttribute: "ga-radio-group" }, providers: [RADIO_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1394
|
+
}
|
|
1395
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaRadioGroupComponent, decorators: [{
|
|
1396
|
+
type: Component,
|
|
1397
|
+
args: [{ selector: 'ga-radio-group', providers: [RADIO_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
1398
|
+
role: 'radiogroup',
|
|
1399
|
+
class: 'ga-radio-group',
|
|
1400
|
+
}, template: "<ng-content></ng-content>\n" }]
|
|
1401
|
+
}] });
|
|
1402
|
+
|
|
1403
|
+
// Increasing integer for generating unique ids for radio button components.
|
|
1404
|
+
let nextUniqueId = 0;
|
|
1405
|
+
class GaRadioButtonComponent {
|
|
1406
|
+
tabindex;
|
|
1407
|
+
radioGroup = inject(GaRadioGroupComponent, {
|
|
1408
|
+
optional: true,
|
|
1409
|
+
});
|
|
1410
|
+
_uniqueId = `ga-radio-button-${++nextUniqueId}`;
|
|
1411
|
+
/** The value attribute of the native input element */
|
|
1412
|
+
value = input(null);
|
|
1413
|
+
inputId = input(null, { alias: 'id' });
|
|
1414
|
+
inputName = input(null, { alias: 'name' });
|
|
1415
|
+
inputChecked = input(false, {
|
|
1416
|
+
alias: 'checked',
|
|
1417
|
+
transform: booleanAttribute,
|
|
1418
|
+
});
|
|
1419
|
+
inputDisabled = input(false, {
|
|
1420
|
+
alias: 'disabled',
|
|
1421
|
+
transform: booleanAttribute,
|
|
1422
|
+
});
|
|
1423
|
+
ariaLabel = input(null, { alias: 'aria-label' });
|
|
1424
|
+
ariaLabelledby = input(null, {
|
|
1425
|
+
alias: 'aria-labelledby',
|
|
1426
|
+
});
|
|
1427
|
+
ariaDescribedby = input(null, {
|
|
1428
|
+
alias: 'aria-describedby',
|
|
1429
|
+
});
|
|
1430
|
+
ariaInvalid = input(null, { alias: 'aria-invalid' });
|
|
1431
|
+
ariaErrormessage = input(null, {
|
|
1432
|
+
alias: 'aria-errormessage',
|
|
1433
|
+
});
|
|
1434
|
+
/**
|
|
1435
|
+
* Event emitted when the group value changes.
|
|
1436
|
+
* Change events are only emitted when the value changes due to user interaction with
|
|
1437
|
+
* a radio button (the same behavior as `<input type="radio">`).
|
|
1438
|
+
*/
|
|
1439
|
+
change = output();
|
|
1440
|
+
id = computed(() => this.inputId() ?? this._uniqueId);
|
|
1441
|
+
name = computed(() => this.radioGroup?.name() ?? this.inputName() ?? this._uniqueId);
|
|
1442
|
+
disabled = computed(() => this.radioGroup?.disabledModel() || this.inputDisabled());
|
|
1443
|
+
checked = computed(() => this.radioGroup?.valueModel() === this.value() || this.inputChecked());
|
|
1444
|
+
constructor(tabindex) {
|
|
1445
|
+
this.tabindex = tabindex;
|
|
1446
|
+
}
|
|
1447
|
+
onInputChange(event) {
|
|
1448
|
+
// We always have to stop propagation on the change event.
|
|
1449
|
+
// Otherwise the change event, from the input element, will bubble up and
|
|
1450
|
+
// emit its event object to the `change` output.
|
|
1451
|
+
event.stopPropagation();
|
|
1452
|
+
if (this.disabled()) {
|
|
1453
|
+
return;
|
|
1454
|
+
}
|
|
1455
|
+
this.change.emit(this.value());
|
|
1456
|
+
this.radioGroup?.onValueChange(this.value());
|
|
1457
|
+
}
|
|
1458
|
+
onBlur() {
|
|
1459
|
+
this.radioGroup?.onBlur();
|
|
1460
|
+
}
|
|
1461
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaRadioButtonComponent, deps: [{ token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1462
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaRadioButtonComponent, isStandalone: true, selector: "ga-radio-button", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, inputName: { classPropertyName: "inputName", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, inputChecked: { classPropertyName: "inputChecked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalid: { classPropertyName: "ariaInvalid", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, ariaErrormessage: { classPropertyName: "ariaErrormessage", publicName: "aria-errormessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { properties: { "class.ga-radio-button--invalid": "ariaInvalid()", "attr.id": "null", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "ga-radio-button" }, ngImport: i0, template: "<input\n type=\"radio\"\n class=\"ga-radio-button__native\"\n [attr.id]=\"id()\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.tabindex]=\"tabindex\"\n [attr.value]=\"value()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n\n<div class=\"ga-radio-button__marker\"></div>\n<label class=\"ga-radio-button__label\" [attr.for]=\"id()\"\n ><ng-content></ng-content\n></label>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1463
|
+
}
|
|
1464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaRadioButtonComponent, decorators: [{
|
|
1465
|
+
type: Component,
|
|
1466
|
+
args: [{ selector: 'ga-radio-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
1467
|
+
class: 'ga-radio-button',
|
|
1468
|
+
'[class.ga-radio-button--invalid]': 'ariaInvalid()',
|
|
1469
|
+
'[attr.id]': 'null',
|
|
1470
|
+
'[attr.tabindex]': 'null',
|
|
1471
|
+
'[attr.aria-label]': 'null',
|
|
1472
|
+
'[attr.aria-labelledby]': 'null',
|
|
1473
|
+
'[attr.aria-describedby]': 'null',
|
|
1474
|
+
}, template: "<input\n type=\"radio\"\n class=\"ga-radio-button__native\"\n [attr.id]=\"id()\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.tabindex]=\"tabindex\"\n [attr.value]=\"value()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n\n<div class=\"ga-radio-button__marker\"></div>\n<label class=\"ga-radio-button__label\" [attr.for]=\"id()\"\n ><ng-content></ng-content\n></label>\n" }]
|
|
1475
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1476
|
+
type: Attribute,
|
|
1477
|
+
args: ['tabindex']
|
|
1478
|
+
}] }] });
|
|
1479
|
+
|
|
1480
|
+
class GaRadioModule {
|
|
1481
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1482
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: GaRadioModule, imports: [GaRadioButtonComponent, GaRadioGroupComponent], exports: [GaRadioButtonComponent, GaRadioGroupComponent] });
|
|
1483
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaRadioModule });
|
|
1484
|
+
}
|
|
1485
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaRadioModule, decorators: [{
|
|
1486
|
+
type: NgModule,
|
|
1487
|
+
args: [{
|
|
1488
|
+
imports: [GaRadioButtonComponent, GaRadioGroupComponent],
|
|
1489
|
+
exports: [GaRadioButtonComponent, GaRadioGroupComponent],
|
|
1490
|
+
}]
|
|
1491
|
+
}] });
|
|
1492
|
+
|
|
1307
1493
|
/*
|
|
1308
1494
|
* Public API Surface of ngx-gaia
|
|
1309
1495
|
*/
|
|
@@ -1312,5 +1498,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
1312
1498
|
* Generated bundle index. Do not edit.
|
|
1313
1499
|
*/
|
|
1314
1500
|
|
|
1315
|
-
export { CHECKBOX_CONTROL_VALUE_ACCESSOR, GA_ALERT_I18N_FACTORY, GA_CHECKBOX_REQUIRED_VALIDATOR, GA_FORM_CONTROL, GA_TOOLTIP_DEFAULT_OFFSET, GaAlertComponent, GaAlertI18n, GaAlertI18nDefault, GaAlertModule, GaAlertTitleActionsComponent, GaAlertTitleComponent, GaBadgeComponent, GaBadgeModule, GaButtonDirective, GaButtonModule, GaCardComponent, GaCardModule, GaCheckboxComponent, GaCheckboxModule, GaCheckboxRequiredValidator, GaFieldInfoComponent, GaFieldLabelComponent, GaFormControlDirective, GaFormFieldComponent, GaFormFieldModule, GaIconButtonDirective, GaIconComponent, GaIconModule, GaInputComponent, GaInputDirective, GaInputModule, GaMenuComponent, GaMenuItemComponent, GaMenuModule, GaMenuSeparatorComponent, GaMenuTitleComponent, GaMenuTriggerDirective, GaSegmentedControlButtonDirective, GaSegmentedControlComponent, GaSegmentedControlModule, GaSpinnerComponent, GaSpinnerModule, GaTooltipComponent, GaTooltipDirective, GaTooltipModule, provideGaAlertI18n };
|
|
1501
|
+
export { CHECKBOX_CONTROL_VALUE_ACCESSOR, GA_ALERT_I18N_FACTORY, GA_CHECKBOX_REQUIRED_VALIDATOR, GA_FORM_CONTROL, GA_TOOLTIP_DEFAULT_OFFSET, GaAlertComponent, GaAlertI18n, GaAlertI18nDefault, GaAlertModule, GaAlertTitleActionsComponent, GaAlertTitleComponent, GaBadgeComponent, GaBadgeModule, GaButtonDirective, GaButtonModule, GaCardComponent, GaCardModule, GaCheckboxComponent, GaCheckboxModule, GaCheckboxRequiredValidator, GaFieldInfoComponent, GaFieldLabelComponent, GaFormControlDirective, GaFormFieldComponent, GaFormFieldModule, GaIconButtonDirective, GaIconComponent, GaIconModule, GaInputComponent, GaInputDirective, GaInputModule, GaMenuComponent, GaMenuItemComponent, GaMenuModule, GaMenuSeparatorComponent, GaMenuTitleComponent, GaMenuTriggerDirective, GaMenuTriggerIconComponent, GaRadioButtonComponent, GaRadioGroupComponent, GaRadioModule, GaSegmentedControlButtonDirective, GaSegmentedControlComponent, GaSegmentedControlModule, GaSpinnerComponent, GaSpinnerModule, GaTooltipComponent, GaTooltipDirective, GaTooltipModule, RADIO_CONTROL_VALUE_ACCESSOR, provideGaAlertI18n };
|
|
1316
1502
|
//# sourceMappingURL=vsn-ux-ngx-gaia.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsn-ux-ngx-gaia.mjs","sources":["../../../projects/ngx-gaia/src/lib/icon/icon.component.ts","../../../projects/ngx-gaia/src/lib/icon/icon.module.ts","../../../projects/ngx-gaia/src/lib/alert/alert-title.component.ts","../../../projects/ngx-gaia/src/lib/button/button.directive.ts","../../../projects/ngx-gaia/src/lib/button/icon-button.directive.ts","../../../projects/ngx-gaia/src/lib/button/button.module.ts","../../../projects/ngx-gaia/src/lib/alert/alert-i18n.service.ts","../../../projects/ngx-gaia/src/lib/alert/alert.component.ts","../../../projects/ngx-gaia/src/lib/alert/alert.component.html","../../../projects/ngx-gaia/src/lib/alert/alert-title-actions.component.ts","../../../projects/ngx-gaia/src/lib/alert/alert.module.ts","../../../projects/ngx-gaia/src/lib/badge/badge.component.ts","../../../projects/ngx-gaia/src/lib/badge/badge.module.ts","../../../projects/ngx-gaia/src/lib/card/card.component.ts","../../../projects/ngx-gaia/src/lib/card/card.module.ts","../../../projects/ngx-gaia/src/lib/checkbox/checkbox.component.ts","../../../projects/ngx-gaia/src/lib/checkbox/checkbox.component.html","../../../projects/ngx-gaia/src/lib/checkbox/checkbox-required.validator.ts","../../../projects/ngx-gaia/src/lib/checkbox/checkbox.module.ts","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control.component.ts","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control.component.html","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control-button.directive.ts","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control.module.ts","../../../projects/ngx-gaia/src/lib/input/input.component.ts","../../../projects/ngx-gaia/src/lib/form-field/form-control.di.ts","../../../projects/ngx-gaia/src/lib/input/input.directive.ts","../../../projects/ngx-gaia/src/lib/input/input.module.ts","../../../projects/ngx-gaia/src/lib/form-field/form-field.component.ts","../../../projects/ngx-gaia/src/lib/form-field/form-field.component.html","../../../projects/ngx-gaia/src/lib/form-field/field-label.component.ts","../../../projects/ngx-gaia/src/lib/form-field/field-info.component.ts","../../../projects/ngx-gaia/src/lib/form-field/form-field.module.ts","../../../projects/ngx-gaia/src/lib/menu/menu.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu-item.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu-title.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu-trigger.directive.ts","../../../projects/ngx-gaia/src/lib/menu/menu-separator.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu.module.ts","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.component.ts","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.component.html","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.directive.ts","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.module.ts","../../../projects/ngx-gaia/src/lib/spinner/spinner.component.ts","../../../projects/ngx-gaia/src/lib/spinner/spinner.module.ts","../../../projects/ngx-gaia/src/public-api.ts","../../../projects/ngx-gaia/src/vsn-ux-ngx-gaia.ts"],"sourcesContent":["import {\n Attribute,\n Component,\n ElementRef,\n inject,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\nimport { LucideAngularModule } from 'lucide-angular';\n\ntype HtmlAttributes = { [key: string]: string | number };\ntype LucideIconNode = readonly [string, HtmlAttributes];\nexport type GaIconData = readonly LucideIconNode[];\n\n@Component({\n selector: 'ga-icon',\n imports: [LucideAngularModule],\n template: `<lucide-icon\n [name]=\"icon()\"\n [size]=\"size()\"\n [color]=\"color()\"\n [strokeWidth]=\"strokeWidth()\"\n />`,\n host: {\n class: 'ga-icon',\n role: 'img',\n },\n styles: `\n .ga-icon {\n display: inline-block;\n vertical-align: middle;\n user-select: none;\n width: fit-content;\n height: fit-content;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class GaIconComponent {\n private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n readonly icon = input<GaIconData | string>();\n readonly size = input<string | number>();\n readonly color = input<string>();\n readonly strokeWidth = input(undefined, { transform: numberAttribute });\n\n constructor(@Attribute('aria-hidden') ariaHiddenAttr: string) {\n if (!ariaHiddenAttr) {\n this.elementRef.nativeElement.setAttribute('aria-hidden', 'true');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { GaIconComponent } from './icon.component';\n\n@NgModule({\n imports: [GaIconComponent],\n exports: [GaIconComponent],\n})\nexport class GaIconModule {}\n","import { Component, computed, input } from '@angular/core';\nimport { GaIconData, GaIconModule } from '../icon';\n\n@Component({\n selector: 'ga-alert-title',\n template: `<ng-content />`,\n host: {\n class: 'ga-notification__title',\n },\n})\nexport class GaAlertTitleComponent {}\n","import { Component, input } from '@angular/core';\n\nexport type GaButtonType = 'primary' | 'secondary' | 'ghost' | 'transparent';\n\n@Component({\n selector: 'button[gaButton], a[gaButton]',\n host: {\n class: 'ga-button',\n '[class.ga-button--secondary]': `!variant() || variant() === 'secondary'`,\n '[class.ga-button--primary]': `variant() === 'primary'`,\n '[class.ga-button--ghost]': `variant() === 'ghost'`,\n '[class.ga-button--transparent]': `variant() === 'transparent'`,\n },\n template: `<ng-content />`,\n})\nexport class GaButtonDirective {\n readonly variant = input.required<GaButtonType | ''>({\n alias: 'gaButton',\n });\n}\n","import {\n Component,\n input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GaIconModule } from '../icon/icon.module';\nimport { GaIconData } from '../icon/icon.component';\n\nexport type GaIconButtonVariant = 'primary' | 'secondary' | 'ghost';\n\n@Component({\n selector: 'button[gaIconButton], a[gaIconButton]',\n imports: [GaIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './icon-button.directive.scss',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ga-icon [icon]=\"icon()\" />\n <span class=\"ga-button__icon-label\"><ng-content /></span>\n `,\n host: {\n class: 'ga-button ga-button--icon-only',\n '[class.ga-button--primary]': `variant() === 'primary'`,\n '[class.ga-button--secondary]': `variant() === 'secondary'`,\n '[class.ga-button--ghost]': `variant() === 'ghost'`,\n },\n})\nexport class GaIconButtonDirective {\n readonly icon = input.required<GaIconData>({\n alias: 'gaIconButton',\n });\n\n readonly variant = input<GaIconButtonVariant>('secondary', {\n alias: 'gaIconButtonVariant',\n });\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaButtonDirective } from './button.directive';\nimport { GaIconButtonDirective } from './icon-button.directive';\n\n@NgModule({\n imports: [GaButtonDirective, GaIconButtonDirective],\n exports: [GaButtonDirective, GaIconButtonDirective],\n})\nexport class GaButtonModule {}\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function GA_ALERT_I18N_FACTORY() {\n return new GaAlertI18nDefault();\n}\n\n@Injectable({\n providedIn: 'root',\n useFactory: GA_ALERT_I18N_FACTORY,\n})\nexport abstract class GaAlertI18n {\n abstract dismissLabel: string;\n}\n\n@Injectable()\nexport class GaAlertI18nDefault extends GaAlertI18n {\n /** A label for the dismiss button */\n dismissLabel = 'Dismiss';\n}\n\nexport function provideGaAlertI18n(value: GaAlertI18n | (() => GaAlertI18n)) {\n return makeEnvironmentProviders([\n typeof value === 'function'\n ? { provide: GaAlertI18n, useFactory: value }\n : { provide: GaAlertI18n, useValue: value },\n ]);\n}\n","import {\n booleanAttribute,\n Component,\n computed,\n contentChild,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { GaIconData, GaIconModule } from '../icon';\nimport { GaAlertTitleComponent } from './alert-title.component';\nimport {\n CircleCheck,\n Info,\n OctagonAlert,\n TriangleAlert,\n X,\n} from 'lucide-angular';\nimport { GaButtonModule } from '../button/button.module';\nimport { GaAlertI18n } from './alert-i18n.service';\n\nexport type GaAlertVariant =\n | 'brand'\n | 'information'\n | 'error'\n | 'warning'\n | 'success';\n\n@Component({\n selector: 'ga-alert',\n templateUrl: './alert.component.html',\n imports: [GaIconModule, GaButtonModule],\n host: {\n role: 'alert',\n '[class]': `variantClass()`,\n },\n})\nexport class GaAlertComponent {\n protected readonly i18n = inject(GaAlertI18n);\n\n readonly dismissIcon: typeof X = X;\n\n readonly variant = input<GaAlertVariant>('brand');\n readonly explicitIcon = input<GaIconData>(undefined, { alias: 'icon' });\n readonly dismissible = input(false, { transform: booleanAttribute });\n\n readonly dismiss = output();\n\n readonly icon = computed(() => {\n if (this.explicitIcon() !== undefined) {\n return this.explicitIcon();\n }\n switch (this.variant()) {\n case 'information':\n return Info;\n case 'error':\n return OctagonAlert;\n case 'warning':\n return TriangleAlert;\n case 'success':\n return CircleCheck;\n }\n return null;\n });\n\n readonly title = contentChild(GaAlertTitleComponent);\n\n readonly variantClass = computed(() => {\n return `ga-notification ga-notification--${this.variant()}`;\n });\n}\n","@if (icon()) {\n <ga-icon [icon]=\"icon()!\" class=\"ga-notification__icon\" />\n}\n<div class=\"ga-notification__content\">\n @if (title()) {\n <div class=\"ga-notification__heading\">\n <ng-content select=\"ga-alert-title\" />\n <ng-content select=\"ga-alert-title-actions\" />\n </div>\n }\n <div class=\"ga-notification__description\">\n <ng-content />\n </div>\n</div>\n\n@if (dismissible()) {\n <button\n type=\"button\"\n [gaIconButton]=\"dismissIcon\"\n gaIconButtonVariant=\"ghost\"\n (click)=\"dismiss.emit()\"\n >\n {{ i18n.dismissLabel }}\n </button>\n}\n","import { Component, computed, input } from '@angular/core';\nimport { GaIconData, GaIconModule } from '../icon';\n\n@Component({\n selector: 'ga-alert-title-actions',\n template: `<ng-content />`,\n host: {\n class: 'ga-notification__title-actions',\n },\n})\nexport class GaAlertTitleActionsComponent {}\n","import { NgModule } from '@angular/core';\n\nimport { GaAlertComponent } from './alert.component';\nimport { GaAlertTitleComponent } from './alert-title.component';\nimport { GaAlertTitleActionsComponent } from './alert-title-actions.component';\n\n@NgModule({\n imports: [\n GaAlertComponent,\n GaAlertTitleComponent,\n GaAlertTitleActionsComponent,\n ],\n exports: [\n GaAlertComponent,\n GaAlertTitleComponent,\n GaAlertTitleActionsComponent,\n ],\n})\nexport class GaAlertModule {}\n","import { Component, computed, input } from '@angular/core';\n\nexport type GaBadgeVariant =\n | 'default'\n | 'default-inverted'\n | 'information'\n | 'error'\n | 'warning'\n | 'success'\n | 'muted'\n | 'disabled';\n\nexport type GaBadgeType = 'text' | 'dot';\n\n@Component({\n selector: 'ga-badge',\n template: `<ng-content />`,\n host: {\n '[class]': `variantClass()`,\n },\n})\nexport class GaBadgeComponent {\n readonly variant = input<GaBadgeVariant>('default');\n readonly type = input<GaBadgeType>('text');\n\n readonly variantClass = computed(() => {\n return `ga-badge ga-badge--${this.type()} ga-badge--${this.variant()}`;\n });\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaBadgeComponent } from './badge.component';\n\n@NgModule({\n imports: [GaBadgeComponent],\n exports: [GaBadgeComponent],\n})\nexport class GaBadgeModule {}\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ga-card',\n template: `<ng-content />`,\n host: {\n class: 'ga-card',\n '[class.ga-card--selectable]': 'selectable()',\n '[class.ga-card--disabled]': 'disabled()',\n },\n})\nexport class GaCardComponent {\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaCardComponent } from './card.component';\n\n@NgModule({\n imports: [GaCardComponent],\n exports: [GaCardComponent],\n})\nexport class GaCardModule {}\n","import {\n Attribute,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DoCheck,\n forwardRef,\n inject,\n Injector,\n input,\n linkedSignal,\n output,\n Provider,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GaCheckboxComponent),\n multi: true,\n};\n\n// Increasing integer for generating unique ids for checkbox components.\n// Inspired by @angular/components\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ga-checkbox',\n templateUrl: './checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR],\n host: {\n class: 'ga-checkbox',\n '[class.ga-checkbox--invalid]': 'invalid()',\n '[attr.id]': 'null',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n '[attr.aria-invalid]': 'null',\n '[attr.aria-errormessage]': 'null',\n },\n})\nexport class GaCheckboxComponent implements ControlValueAccessor, DoCheck {\n /** @ignore */\n private readonly _uniqueId = `ga-checkbox-${++nextUniqueId}`;\n\n /** @ignore */\n private readonly injector = inject(Injector);\n\n /** @ignore */\n private _onTouched?: () => any;\n /** @ignore */\n private _onModelChanged?: (value: any) => void;\n /** @ignore */\n private _invalidNgModel = signal(false);\n private _ngModelName = signal<string | number | null>(null);\n\n /** The value attribute of the native input element */\n readonly value = input<string | null>(null);\n readonly disabled = input(false, {\n transform: booleanAttribute,\n });\n readonly checked = input(false, {\n transform: booleanAttribute,\n });\n readonly nameInput = input<string | null>(null, { alias: 'name' });\n readonly id = input<string | null>(null);\n readonly indeterminate = input(false, { transform: booleanAttribute });\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaLabelledby = input<string | null>(null, {\n alias: 'aria-labelledby',\n });\n readonly ariaDescribedby = input<string | null>(null, {\n alias: 'aria-describedby',\n });\n readonly ariaInvalid = input<string | null>(null, { alias: 'aria-invalid' });\n readonly ariaErrormessage = input<string | null>(null, {\n alias: 'aria-errormessage',\n });\n readonly required = input(false, { transform: booleanAttribute });\n\n readonly disabledModel = linkedSignal(() => this.disabled());\n readonly checkedModel = linkedSignal(() => this.checked());\n\n readonly change = output<boolean>();\n readonly indeterminateChange = output<boolean>();\n\n /** @ignore */\n readonly inputId = computed(() => (this.id() ? this.id() : this._uniqueId));\n /** @ignore */\n readonly name = computed(() => {\n return this.nameInput() ?? this._ngModelName() ?? this._uniqueId;\n });\n /** @ignore */\n readonly invalid = computed(() => {\n return this.ariaInvalid()\n ? this.ariaInvalid() === 'true'\n : this._invalidNgModel();\n });\n\n constructor(\n /** @ignore */\n @Attribute('tabindex') protected readonly tabindex?: string,\n ) {}\n\n ngDoCheck(): void {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this._invalidNgModel.set(!!ngControl.invalid);\n this._ngModelName.set(ngControl.name);\n }\n }\n\n /** @ignore */\n onInputChange(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n\n if (this.disabled()) {\n return;\n }\n\n this.checkedModel.set(!this.checkedModel());\n this.updateModel();\n }\n\n /** @ignore */\n onBlur() {\n this._onTouched?.();\n }\n\n /** @ignore */\n registerOnChange(fn: (value: any) => void) {\n this._onModelChanged = fn;\n }\n\n /** @ignore */\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n /** @ignore */\n writeValue(value: any) {\n this.checkedModel.set(!!value);\n }\n\n /** @ignore */\n setDisabledState(isDisabled: boolean) {\n this.disabledModel.set(isDisabled);\n }\n\n /** @ignore */\n private updateModel() {\n this._onModelChanged?.(this.checkedModel());\n this.change.emit(this.checkedModel());\n }\n}\n","<input\n type=\"checkbox\"\n class=\"ga-checkbox__native\"\n [attr.id]=\"inputId()\"\n [name]=\"name()\"\n [checked]=\"checkedModel()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabledModel()\"\n [required]=\"required()\"\n [attr.value]=\"value()\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n<div class=\"ga-checkbox__marker\">\n <svg\n class=\"ga-checkbox__marker__indicator-checked\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M4 9L6 11L12 5\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <svg\n class=\"ga-checkbox__marker__indicator-indeterminate\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M4 8H6.13333H12\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n</div>\n\n<label class=\"ga-checkbox__label\" [attr.for]=\"inputId()\"\n ><ng-content></ng-content\n></label>\n","import { Directive, Provider, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, CheckboxRequiredValidator } from '@angular/forms';\n\nexport const GA_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GaCheckboxRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Gaia checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `ga-checkbox`.\n */\n@Directive({\n selector: `ga-checkbox[required][formControlName], ga-checkbox[required][formControl], ga-checkbox[required][ngModel]`,\n providers: [GA_CHECKBOX_REQUIRED_VALIDATOR],\n})\nexport class GaCheckboxRequiredValidator extends CheckboxRequiredValidator {}\n","import { NgModule } from '@angular/core';\n\nimport { GaCheckboxRequiredValidator } from './checkbox-required.validator';\nimport { GaCheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [GaCheckboxComponent, GaCheckboxRequiredValidator],\n exports: [GaCheckboxComponent, GaCheckboxRequiredValidator],\n})\nexport class GaCheckboxModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n model,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'ga-segmented-control',\n templateUrl: './segmented-control.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'group',\n class: 'ga-segmented-control',\n },\n})\nexport class GaSegmentedControlComponent {\n readonly selected = model<string>();\n\n readonly change = output<string | undefined>();\n}\n","<ng-content select=\"button[gaSegmentedControlButton]\"></ng-content>\n","import {\n computed,\n Directive,\n HostListener,\n inject,\n input,\n} from '@angular/core';\n\nimport { GaSegmentedControlComponent } from './segmented-control.component';\n\n@Directive({\n selector: '[gaSegmentedControlButton]',\n host: {\n type: 'button',\n class: 'ga-segmented-control__button',\n '[class.ga-segmented-control__button--selected]': 'selected()',\n '[attr.aria-pressed]': 'selected()',\n },\n})\nexport class GaSegmentedControlButtonDirective {\n /** @ignore */\n private readonly group = inject(GaSegmentedControlComponent, { host: true });\n\n readonly value = input<string>();\n\n readonly selected = computed(() => {\n return (\n this.value() !== undefined &&\n this.group.selected() !== undefined &&\n this.group.selected() === this.value()\n );\n });\n\n @HostListener('click')\n onClick(): void {\n this.group.selected.set(this.value());\n this.group.change.emit(this.value());\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaSegmentedControlComponent } from './segmented-control.component';\nimport { GaSegmentedControlButtonDirective } from './segmented-control-button.directive';\n\n@NgModule({\n imports: [GaSegmentedControlComponent, GaSegmentedControlButtonDirective],\n exports: [GaSegmentedControlComponent, GaSegmentedControlButtonDirective],\n})\nexport class GaSegmentedControlModule {}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DoCheck,\n input,\n signal,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Component({\n selector: 'ga-input',\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ga-input',\n '[class.ga-input--invalid]': 'invalid()',\n },\n})\nexport class GaInputComponent implements DoCheck {\n private readonly implicitNgControl = contentChild(NgControl);\n private readonly implicitInvalid = signal(false);\n\n readonly invalidInput = input(null, { transform: booleanAttribute });\n\n readonly invalid = computed(() => {\n return this.invalidInput() ?? this.implicitInvalid();\n });\n\n ngDoCheck() {\n // we can rely on computed because `ivalid` of NgControl is not a signal, yet\n const implicitNgControl = this.implicitNgControl();\n if (implicitNgControl) {\n this.implicitInvalid.set(\n !!implicitNgControl.invalid && !!implicitNgControl.dirty,\n );\n }\n }\n}\n","import { Directive, InjectionToken, Signal } from '@angular/core';\n\nexport interface GaFormControl {\n readonly id: Signal<string>;\n}\n\nexport const GA_FORM_CONTROL = new InjectionToken<GaFormControl>(\n 'ga-form-control',\n);\n\n@Directive({\n selector: '[gaFormControl]',\n providers: [\n { provide: GA_FORM_CONTROL, useExisting: GaFormControlDirective },\n ],\n})\nexport class GaFormControlDirective {}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DoCheck,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { NgControl, ValidationErrors } from '@angular/forms';\nimport { GaInputComponent } from './input.component';\nimport { GA_FORM_CONTROL, GaFormControl } from '../form-field/form-control.di';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: '[gaInput]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id()',\n '[class.ga-input]': '!hasWrapper',\n '[class.ga-input--invalid]': '!hasWrapper && invalid()',\n },\n providers: [{ provide: GA_FORM_CONTROL, useExisting: GaInputDirective }],\n})\nexport class GaInputDirective implements DoCheck, GaFormControl {\n readonly uniqueId = `ga-input-${++nextUniqueId}`;\n\n private readonly implicitNgControl = inject(NgControl, {\n optional: true,\n self: true,\n });\n protected readonly hasWrapper = inject(GaInputComponent, { optional: true });\n\n private readonly implicitInvalid = signal(false);\n private readonly implicitErrors = signal<ValidationErrors | null>(null);\n\n readonly invalidInput = input(null, { transform: booleanAttribute });\n readonly idInput = input<string>(undefined, { alias: 'id' });\n\n readonly invalid = computed(() => {\n return this.invalidInput() ?? this.implicitInvalid();\n });\n readonly id = computed(() => {\n return this.idInput() ?? this.uniqueId;\n });\n readonly errors = this.implicitErrors.asReadonly();\n\n ngDoCheck() {\n if (this.hasWrapper) return;\n\n // we can rely on computed because `ivalid` of NgControl is not a signal, yet\n const implicitNgControl = this.implicitNgControl;\n if (implicitNgControl) {\n this.implicitInvalid.set(\n !!implicitNgControl.invalid && !!implicitNgControl.dirty,\n );\n this.implicitErrors.set(implicitNgControl.errors);\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaInputComponent } from './input.component';\nimport { GaInputDirective } from './input.directive';\n\n@NgModule({\n imports: [GaInputComponent, GaInputDirective],\n exports: [GaInputComponent, GaInputDirective],\n})\nexport class GaInputModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n} from '@angular/core';\nimport { GA_FORM_CONTROL } from './form-control.di';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ga-form-field',\n exportAs: 'gaFormField',\n templateUrl: './form-field.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ga-form-field',\n },\n})\nexport class GaFormFieldComponent {\n readonly uniqueId = `ga-form-field-${++nextUniqueId}`;\n\n readonly formControl = contentChild(GA_FORM_CONTROL);\n\n readonly controlId = computed(() => {\n return this.formControl()?.id() ?? this.uniqueId;\n });\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { GaFormFieldComponent } from './form-field.component';\n\n@Component({\n selector: 'ga-label',\n template: `<label [attr.for]=\"controlId()\" class=\"ga-form-field__label\"\n ><ng-content\n /></label>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GaFieldLabelComponent {\n readonly formField = inject(GaFormFieldComponent);\n\n readonly for = input<string>();\n\n readonly controlId = computed(() => {\n return this.for() ?? this.formField.controlId();\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ga-info',\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ga-form-field__info',\n },\n})\nexport class GaFieldInfoComponent {}\n","import { NgModule } from '@angular/core';\n\nimport { GaFormFieldComponent } from './form-field.component';\nimport { GaFieldLabelComponent } from './field-label.component';\nimport { GaFieldInfoComponent } from './field-info.component';\nimport { GaFormControlDirective } from './form-control.di';\n\n@NgModule({\n imports: [\n GaFormFieldComponent,\n GaFieldLabelComponent,\n GaFieldInfoComponent,\n GaFormControlDirective,\n ],\n exports: [\n GaFormFieldComponent,\n GaFieldLabelComponent,\n GaFieldInfoComponent,\n GaFormControlDirective,\n ],\n})\nexport class GaFormFieldModule {}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'ga-menu',\n template: `<ng-content />`,\n hostDirectives: [CdkMenu],\n host: {\n class: 'ga-menu',\n },\n styles: `\n :host {\n margin-top: var(--ga-size-8);\n margin-bottom: var(--ga-size-8);\n }\n `,\n})\nexport class GaMenuComponent {}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: '[gaMenuItem]',\n template: `<ng-content />`,\n hostDirectives: [CdkMenuItem],\n host: {\n class: 'ga-menu__item',\n },\n})\nexport class GaMenuItemComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ga-menu-title',\n template: `<ng-content />`,\n host: {\n class: 'ga-menu__title',\n },\n})\nexport class GaMenuTitleComponent {}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, effect, inject, input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[gaMenuTrigger]',\n standalone: true,\n hostDirectives: [CdkMenuTrigger],\n})\nexport class GaMenuTriggerDirective {\n private readonly cdkMenuTrigger = inject(CdkMenuTrigger);\n\n readonly menuRef = input.required<TemplateRef<any>>({\n alias: 'gaMenuTrigger',\n });\n\n constructor() {\n effect(() => {\n this.cdkMenuTrigger.menuTemplateRef = this.menuRef();\n });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ga-menu-separator',\n template: `<ng-content />`,\n host: {\n class: 'ga-menu__separator',\n },\n})\nexport class GaMenuSeparatorComponent {}\n","import { NgModule } from '@angular/core';\nimport { GaMenuComponent } from './menu.component';\nimport { GaMenuItemComponent } from './menu-item.component';\nimport { GaMenuTriggerDirective } from './menu-trigger.directive';\nimport { GaMenuSeparatorComponent } from './menu-separator.component';\nimport { GaMenuTitleComponent } from './menu-title.component';\n\n@NgModule({\n imports: [\n GaMenuComponent,\n GaMenuItemComponent,\n GaMenuTriggerDirective,\n GaMenuSeparatorComponent,\n GaMenuTitleComponent,\n ],\n exports: [\n GaMenuComponent,\n GaMenuItemComponent,\n GaMenuTriggerDirective,\n GaMenuSeparatorComponent,\n GaMenuTitleComponent,\n ],\n})\nexport class GaMenuModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n input,\n output,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\n\ntype Position = 'top' | 'bottom' | 'left' | 'right';\ntype Direction = 'start' | 'end' | 'center';\nexport type GaTooltipPlacement = `${Position}-${Direction}`;\nexport type GaTooltipControlMode = 'hover' | 'click' | 'none';\n\n@Component({\n selector: 'ga-tooltip',\n imports: [NgTemplateOutlet],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.style]': 'inlineStyle()',\n },\n})\nexport class GaTooltipComponent {\n private mouseLeaveSubject = new Subject<void>();\n readonly afterMouseLeave = () => this.mouseLeaveSubject.asObservable();\n\n readonly mouseOver = signal(false);\n\n readonly content = input.required<string | TemplateRef<any>>();\n\n readonly template = computed(() => {\n const content = this.content();\n return content instanceof TemplateRef ? content : null;\n });\n\n readonly text = computed(() => {\n const content = this.content();\n return typeof content === 'string' ? content : null;\n });\n\n readonly position = input<GaTooltipPlacement>();\n readonly offset = input<number>(0);\n\n readonly hideTriggered = output();\n readonly triggerHide = () => this.hideTriggered.emit();\n\n readonly inlineStyle = computed(() => {\n if (!this.position() || !this.offset()) {\n return '';\n }\n\n return `--ga-tooltip-offset: ${this.offset()}px;`;\n });\n\n readonly cssClass = computed(() => {\n return ['ga-tooltip', `ga-tooltip--${this.position()}`].join(' ');\n });\n\n @HostListener('mouseenter')\n handleMouseEnter(): void {\n this.mouseOver.set(true);\n }\n\n @HostListener('mouseleave')\n handleMouseLeave(): void {\n this.mouseOver.set(false);\n this.mouseLeaveSubject.next();\n }\n}\n","<div [class]=\"cssClass()\">\n @if (text()) {\n {{ text() }}\n } @else if (template()) {\n <ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ hide: triggerHide }\"\n />\n }\n</div>\n","import {\n Overlay,\n OverlayRef,\n FlexibleConnectedPositionStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n booleanAttribute,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n Input,\n NgZone,\n numberAttribute,\n OutputRefSubscription,\n TemplateRef,\n} from '@angular/core';\nimport { Subject, Observable, takeUntil, map } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n GaTooltipComponent,\n GaTooltipControlMode,\n GaTooltipPlacement,\n} from './tooltip.component';\n\nexport const GA_TOOLTIP_DEFAULT_OFFSET = 5;\n\n@Directive({\n selector: '[gaTooltip]',\n exportAs: 'gaTooltip',\n})\nexport class GaTooltipDirective {\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ngZone = inject(NgZone);\n\n protected destroyed$ = new Subject<void>();\n private _content: string | TemplateRef<any> | null = null;\n private tooltipInstanceDestroyed$: Subject<void> | null = null;\n private outputSubscription: OutputRefSubscription | null = null;\n private overlayRef?: OverlayRef;\n private tooltipPortal?: ComponentPortal<GaTooltipComponent>;\n private tooltipRef?: ComponentRef<GaTooltipComponent>;\n private get tooltipInstance() {\n return this.tooltipRef ? this.tooltipRef.instance : null;\n }\n private currentPosition$?: Observable<GaTooltipPlacement>;\n private _placement: GaTooltipPlacement = 'right-center';\n private _offset: number = GA_TOOLTIP_DEFAULT_OFFSET;\n private mouseOver: boolean = false;\n private _showControlMode: GaTooltipControlMode | null = null;\n private _hideControlMode: GaTooltipControlMode | null = null;\n\n @Input('gaTooltip')\n set content(value: string | TemplateRef<any> | null) {\n if (value === this._content) {\n return;\n }\n\n this._content = value;\n\n // Hide tooltip with empty content\n if (!this._content && this.overlayRef?.hasAttached()) {\n this.hide();\n return;\n }\n\n // Update the content in case tooltip is already opened\n if (this.tooltipRef && this.overlayRef?.hasAttached()) {\n this.tooltipRef.setInput('content', this._content);\n }\n }\n get content() {\n return this._content;\n }\n\n @Input({ alias: 'gaTooltipDisabled', transform: booleanAttribute })\n disabled = false;\n\n @Input({ alias: 'gaTooltipControlMode' })\n controlMode: GaTooltipControlMode = 'hover';\n\n /**\n * @default `gaTooltipControlMode`\n */\n @Input({ alias: 'gaTooltipShowControlMode' })\n set showControlMode(value: GaTooltipControlMode) {\n this._showControlMode = value;\n }\n get showControlMode(): GaTooltipControlMode {\n return this._showControlMode ?? this.controlMode;\n }\n\n /**\n * @default `gaTooltipControlMode`\n */\n @Input({ alias: 'gaTooltipHideControlMode' })\n set hideControlMode(value: GaTooltipControlMode) {\n this._hideControlMode = value;\n }\n get hideControlMode(): GaTooltipControlMode {\n return this._hideControlMode ?? this.controlMode;\n }\n\n @Input({ alias: 'gaTooltipOffsetSize', transform: numberAttribute })\n set offset(value) {\n if (this._offset === value) {\n return;\n }\n\n this._offset = !isNaN(value) ? value : GA_TOOLTIP_DEFAULT_OFFSET;\n this.updateTooltipPlacement();\n }\n get offset() {\n return this._offset;\n }\n\n @Input({ alias: 'gaTooltipPlacement' })\n set placement(value: GaTooltipPlacement) {\n if (this._placement === value) {\n return;\n }\n\n this._placement = value;\n\n this.updateTooltipPlacement();\n }\n get placement() {\n return this._placement;\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n }\n\n show(): void {\n if (this.overlayRef?.hasAttached()) {\n return;\n }\n\n const overlayRef = this.createOverlay();\n this.tooltipPortal =\n this.tooltipPortal ?? new ComponentPortal(GaTooltipComponent);\n\n this.tooltipInstanceDestroyed$ = new Subject();\n\n this.tooltipRef = overlayRef.attach(this.tooltipPortal);\n this.tooltipRef.setInput('content', this.content);\n this.outputSubscription = this.tooltipInstance!.hideTriggered.subscribe(\n () => setTimeout(() => this.hide()),\n );\n\n if (this.hideControlMode === 'hover') {\n // Soft hide tooltip on mouse leave when control mode is set to 'hover'\n this.tooltipInstance!.afterMouseLeave()\n .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n .subscribe(() => setTimeout(() => this.softHide()));\n } else if (this.hideControlMode === 'click') {\n // Hide tooltip on outside click when control mode is set to 'click'\n overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n .subscribe((event) => {\n const element = this.elementRef.nativeElement;\n if (event.target !== element && !element.contains(event.target)) {\n this.hide();\n }\n });\n }\n\n // Tell the instance current position (left, right, top, bottom)\n this.currentPosition$!.pipe(\n takeUntil(this.tooltipInstanceDestroyed$),\n ).subscribe((position) => {\n this.ngZone.run(() => {\n if (!this.tooltipRef) {\n return;\n }\n this.tooltipRef.setInput('position', position);\n this.tooltipRef.setInput('offset', this.offset);\n });\n });\n }\n\n hide(): void {\n if (!this.overlayRef?.hasAttached()) {\n return;\n }\n this.overlayRef.detach();\n this.tooltipInstanceDestroyed$!.next();\n this.tooltipInstanceDestroyed$!.complete();\n this.outputSubscription?.unsubscribe();\n this.tooltipRef = undefined;\n }\n\n toggle(): void {\n if (!this.overlayRef?.hasAttached()) {\n this.show();\n return;\n }\n this.hide();\n }\n\n @HostListener('click')\n handleMouseClick(): void {\n if (this.showControlMode !== 'click' || this.disabled || !this._content) {\n return;\n }\n this.toggle();\n }\n\n @HostListener('mouseenter')\n handleMouseEnter(): void {\n if (this.showControlMode !== 'hover' || this.disabled || !this._content) {\n return;\n }\n this.mouseOver = true;\n this.show();\n }\n\n @HostListener('mouseleave')\n handleMouseLeave(): void {\n if (this.hideControlMode !== 'hover' || this.disabled) {\n return;\n }\n this.mouseOver = false;\n setTimeout(() => this.softHide());\n }\n\n /**\n * hides only if mouse is not over the host element nor the tooltip itself\n */\n private softHide() {\n if (!this.mouseOver && !this.tooltipInstance?.mouseOver()) {\n this.hide();\n }\n }\n\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef);\n this.currentPosition$ = positionStrategy.positionChanges.pipe(\n map((pos) => pos.connectionPair.panelClass as GaTooltipPlacement),\n );\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n this.overlayRef = this.overlay.create({ positionStrategy, scrollStrategy });\n\n if (this.showControlMode !== 'none') {\n this.overlayRef\n .keydownEvents()\n .pipe(takeUntil(this.destroyed$))\n .subscribe((event) => {\n if (\n this.overlayRef?.hasAttached() &&\n event.keyCode === ESCAPE &&\n !hasModifierKey(event)\n ) {\n this.hide();\n }\n });\n }\n\n this.updatePosition();\n\n return this.overlayRef;\n }\n\n private updateTooltipPlacement(): void {\n if (this.overlayRef) {\n this.updatePosition();\n this.overlayRef.updatePosition();\n }\n }\n\n private updatePosition(): void {\n const position = this.overlayRef!.getConfig()\n .positionStrategy as FlexibleConnectedPositionStrategy;\n const positions = this.getPositions(this._placement);\n position.withPositions(positions);\n }\n\n private getPositions(\n preferredPlacement: GaTooltipPlacement,\n ): ConnectedPosition[] {\n let positionedOverlayY: ConnectedPosition['overlayY'];\n let positionedOffsetY: number;\n if (preferredPlacement.endsWith('start')) {\n positionedOverlayY = 'top';\n positionedOffsetY = -24;\n } else if (preferredPlacement.endsWith('end')) {\n positionedOverlayY = 'bottom';\n positionedOffsetY = 24;\n } else {\n positionedOverlayY = 'center';\n positionedOffsetY = 0;\n }\n\n let positionedOverlayX: ConnectedPosition['overlayX'];\n let positionedOffsetX: number;\n if (preferredPlacement.endsWith('start')) {\n positionedOverlayX = 'start';\n positionedOffsetX = -24;\n } else if (preferredPlacement.endsWith('end')) {\n positionedOverlayX = 'end';\n positionedOffsetX = 24;\n } else {\n positionedOffsetX = 0;\n positionedOverlayX = 'center';\n }\n\n const right: ConnectedPosition = {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: positionedOverlayY,\n offsetY: positionedOffsetY,\n panelClass: `right-${positionedOverlayY}`,\n };\n\n const left: ConnectedPosition = {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: positionedOverlayY,\n offsetY: positionedOffsetY,\n panelClass: `left-${positionedOverlayY}`,\n };\n\n const top: ConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: positionedOverlayX,\n overlayY: 'bottom',\n offsetX: positionedOffsetX,\n panelClass: `top-${positionedOverlayX}`,\n };\n\n const bottom: ConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: positionedOverlayX,\n overlayY: 'top',\n offsetX: positionedOffsetX,\n panelClass: `bottom-${positionedOverlayX}`,\n };\n\n if (preferredPlacement.startsWith('right')) {\n return [right, left, bottom, top];\n } else if (preferredPlacement.startsWith('left')) {\n return [left, right, bottom, top];\n } else if (preferredPlacement.startsWith('top')) {\n return [top, bottom, right, left];\n } else {\n return [bottom, top, right, left];\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { GaTooltipDirective } from './tooltip.directive';\n\n@NgModule({\n imports: [GaTooltipDirective],\n exports: [GaTooltipDirective],\n})\nexport class GaTooltipModule {}\n","import {\n Component,\n computed,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ga-spinner',\n template: `\n <svg\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n [attr.cx]=\"center()\"\n [attr.cy]=\"center()\"\n [attr.r]=\"radius()\"\n stroke=\"var(--ga-color-secondary)\"\n [attr.stroke-width]=\"strokeWidth()\"\n fill=\"none\"\n ></circle>\n <circle\n [attr.cx]=\"center()\"\n [attr.cy]=\"center()\"\n [attr.r]=\"radius()\"\n stroke=\"var(--ga-color-primary-70)\"\n [attr.stroke-width]=\"strokeWidth()\"\n stroke-linecap=\"round\"\n fill=\"none\"\n [attr.stroke-dasharray]=\"arcCircumference() + ' ' + circumference()\"\n style=\"transform-origin: center; animation: ga-spinner__animation 1100ms linear infinite;\"\n ></circle>\n </svg>\n `,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ga-spinner',\n },\n styles: `\n .ga-spinner {\n display: inline-block;\n }\n\n @keyframes ga-spinner__animation {\n 0% {\n transform: rotate(0deg);\n }\n 31.82% {\n /* 350ms / 1100ms */\n transform: rotate(90deg);\n }\n 63.64% {\n /* (350ms + 350ms) / 1100ms */\n transform: rotate(180deg);\n }\n 81.82% {\n /* (350ms + 350ms + 200ms) / 1100ms */\n transform: rotate(270deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n `,\n})\nexport class GaSpinnerComponent {\n readonly size = input(32, { transform: numberAttribute });\n\n readonly strokeWidth = computed(() => this.size() / 5);\n readonly center = computed(() => this.size() / 2);\n readonly radius = computed(() => (this.size() - this.strokeWidth()) / 2);\n readonly circumference = computed(() => 2 * Math.PI * this.radius());\n readonly arcCircumference = computed(() => this.circumference() * 0.25);\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaSpinnerComponent } from './spinner.component';\n\n@NgModule({\n imports: [GaSpinnerComponent],\n exports: [GaSpinnerComponent],\n})\nexport class GaSpinnerModule {}\n","/*\n * Public API Surface of ngx-gaia\n */\n\nexport * from './lib/alert/index';\nexport * from './lib/badge/index';\nexport * from './lib/button/index';\nexport * from './lib/card/index';\nexport * from './lib/checkbox/index';\nexport * from './lib/segmented-control/index';\nexport * from './lib/icon/index';\nexport * from './lib/input/index';\nexport * from './lib/form-field/index';\nexport * from './lib/menu/index';\nexport * from './lib/tooltip/index';\nexport * from './lib/spinner/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GaIconComponent","i2.GaIconButtonDirective","nextUniqueId","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vsn-ux-ngx-gaia.mjs","sources":["../../../projects/ngx-gaia/src/lib/icon/icon.component.ts","../../../projects/ngx-gaia/src/lib/icon/icon.module.ts","../../../projects/ngx-gaia/src/lib/alert/alert-title.component.ts","../../../projects/ngx-gaia/src/lib/button/button.directive.ts","../../../projects/ngx-gaia/src/lib/button/icon-button.directive.ts","../../../projects/ngx-gaia/src/lib/button/button.module.ts","../../../projects/ngx-gaia/src/lib/alert/alert-i18n.service.ts","../../../projects/ngx-gaia/src/lib/alert/alert.component.ts","../../../projects/ngx-gaia/src/lib/alert/alert.component.html","../../../projects/ngx-gaia/src/lib/alert/alert-title-actions.component.ts","../../../projects/ngx-gaia/src/lib/alert/alert.module.ts","../../../projects/ngx-gaia/src/lib/badge/badge.component.ts","../../../projects/ngx-gaia/src/lib/badge/badge.module.ts","../../../projects/ngx-gaia/src/lib/card/card.component.ts","../../../projects/ngx-gaia/src/lib/card/card.module.ts","../../../projects/ngx-gaia/src/lib/checkbox/checkbox.component.ts","../../../projects/ngx-gaia/src/lib/checkbox/checkbox.component.html","../../../projects/ngx-gaia/src/lib/checkbox/checkbox-required.validator.ts","../../../projects/ngx-gaia/src/lib/checkbox/checkbox.module.ts","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control.component.ts","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control.component.html","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control-button.directive.ts","../../../projects/ngx-gaia/src/lib/segmented-control/segmented-control.module.ts","../../../projects/ngx-gaia/src/lib/input/input.component.ts","../../../projects/ngx-gaia/src/lib/form-field/form-control.di.ts","../../../projects/ngx-gaia/src/lib/input/input.directive.ts","../../../projects/ngx-gaia/src/lib/input/input.module.ts","../../../projects/ngx-gaia/src/lib/form-field/form-field.component.ts","../../../projects/ngx-gaia/src/lib/form-field/form-field.component.html","../../../projects/ngx-gaia/src/lib/form-field/field-label.component.ts","../../../projects/ngx-gaia/src/lib/form-field/field-info.component.ts","../../../projects/ngx-gaia/src/lib/form-field/form-field.module.ts","../../../projects/ngx-gaia/src/lib/menu/menu.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu-item.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu-title.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu-trigger.directive.ts","../../../projects/ngx-gaia/src/lib/menu/menu-separator.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu-trigger-icon.component.ts","../../../projects/ngx-gaia/src/lib/menu/menu.module.ts","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.component.ts","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.component.html","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.directive.ts","../../../projects/ngx-gaia/src/lib/tooltip/tooltip.module.ts","../../../projects/ngx-gaia/src/lib/spinner/spinner.component.ts","../../../projects/ngx-gaia/src/lib/spinner/spinner.module.ts","../../../projects/ngx-gaia/src/lib/radio/radio-group.component.ts","../../../projects/ngx-gaia/src/lib/radio/radio-group.component.html","../../../projects/ngx-gaia/src/lib/radio/radio-button.component.ts","../../../projects/ngx-gaia/src/lib/radio/radio-button.component.html","../../../projects/ngx-gaia/src/lib/radio/radio.module.ts","../../../projects/ngx-gaia/src/public-api.ts","../../../projects/ngx-gaia/src/vsn-ux-ngx-gaia.ts"],"sourcesContent":["import {\n Attribute,\n Component,\n ElementRef,\n inject,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\nimport { LucideAngularModule } from 'lucide-angular';\n\ntype HtmlAttributes = { [key: string]: string | number };\ntype LucideIconNode = readonly [string, HtmlAttributes];\nexport type GaIconData = readonly LucideIconNode[];\n\n@Component({\n selector: 'ga-icon',\n imports: [LucideAngularModule],\n template: `<lucide-icon\n [name]=\"icon()\"\n [size]=\"size()\"\n [color]=\"color()\"\n [strokeWidth]=\"strokeWidth()\"\n />`,\n host: {\n class: 'ga-icon',\n role: 'img',\n },\n styles: `\n .ga-icon {\n display: inline-block;\n vertical-align: middle;\n user-select: none;\n width: fit-content;\n height: fit-content;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class GaIconComponent {\n private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n readonly icon = input<GaIconData | string>();\n readonly size = input<string | number>();\n readonly color = input<string>();\n readonly strokeWidth = input(undefined, { transform: numberAttribute });\n\n constructor(@Attribute('aria-hidden') ariaHiddenAttr: string) {\n if (!ariaHiddenAttr) {\n this.elementRef.nativeElement.setAttribute('aria-hidden', 'true');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { GaIconComponent } from './icon.component';\n\n@NgModule({\n imports: [GaIconComponent],\n exports: [GaIconComponent],\n})\nexport class GaIconModule {}\n","import { Component, computed, input } from '@angular/core';\nimport { GaIconData, GaIconModule } from '../icon';\n\n@Component({\n selector: 'ga-alert-title',\n template: `<ng-content />`,\n host: {\n class: 'ga-notification__title',\n },\n})\nexport class GaAlertTitleComponent {}\n","import { Component, input } from '@angular/core';\n\nexport type GaButtonType = 'primary' | 'secondary' | 'ghost' | 'transparent';\n\n@Component({\n selector: 'button[gaButton], a[gaButton]',\n host: {\n class: 'ga-button',\n '[class.ga-button--secondary]': `!variant() || variant() === 'secondary'`,\n '[class.ga-button--primary]': `variant() === 'primary'`,\n '[class.ga-button--ghost]': `variant() === 'ghost'`,\n '[class.ga-button--transparent]': `variant() === 'transparent'`,\n },\n template: `<ng-content />`,\n})\nexport class GaButtonDirective {\n readonly variant = input.required<GaButtonType | ''>({\n alias: 'gaButton',\n });\n}\n","import {\n Component,\n input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { GaIconModule } from '../icon/icon.module';\nimport { GaIconData } from '../icon/icon.component';\n\nexport type GaIconButtonVariant = 'primary' | 'secondary' | 'ghost';\n\n@Component({\n selector: 'button[gaIconButton], a[gaIconButton]',\n imports: [GaIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './icon-button.directive.scss',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ga-icon [icon]=\"icon()\" />\n <span class=\"ga-button__icon-label\"><ng-content /></span>\n `,\n host: {\n class: 'ga-button ga-button--icon-only',\n '[class.ga-button--primary]': `variant() === 'primary'`,\n '[class.ga-button--secondary]': `variant() === 'secondary'`,\n '[class.ga-button--ghost]': `variant() === 'ghost'`,\n },\n})\nexport class GaIconButtonDirective {\n readonly icon = input.required<GaIconData>({\n alias: 'gaIconButton',\n });\n\n readonly variant = input<GaIconButtonVariant>('secondary', {\n alias: 'gaIconButtonVariant',\n });\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaButtonDirective } from './button.directive';\nimport { GaIconButtonDirective } from './icon-button.directive';\n\n@NgModule({\n imports: [GaButtonDirective, GaIconButtonDirective],\n exports: [GaButtonDirective, GaIconButtonDirective],\n})\nexport class GaButtonModule {}\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function GA_ALERT_I18N_FACTORY() {\n return new GaAlertI18nDefault();\n}\n\n@Injectable({\n providedIn: 'root',\n useFactory: GA_ALERT_I18N_FACTORY,\n})\nexport abstract class GaAlertI18n {\n abstract dismissLabel: string;\n}\n\n@Injectable()\nexport class GaAlertI18nDefault extends GaAlertI18n {\n /** A label for the dismiss button */\n dismissLabel = 'Dismiss';\n}\n\nexport function provideGaAlertI18n(value: GaAlertI18n | (() => GaAlertI18n)) {\n return makeEnvironmentProviders([\n typeof value === 'function'\n ? { provide: GaAlertI18n, useFactory: value }\n : { provide: GaAlertI18n, useValue: value },\n ]);\n}\n","import {\n booleanAttribute,\n Component,\n computed,\n contentChild,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { GaIconData, GaIconModule } from '../icon';\nimport { GaAlertTitleComponent } from './alert-title.component';\nimport {\n CircleCheck,\n Info,\n OctagonAlert,\n TriangleAlert,\n X,\n} from 'lucide-angular';\nimport { GaButtonModule } from '../button/button.module';\nimport { GaAlertI18n } from './alert-i18n.service';\n\nexport type GaAlertVariant =\n | 'brand'\n | 'information'\n | 'error'\n | 'warning'\n | 'success';\n\n@Component({\n selector: 'ga-alert',\n templateUrl: './alert.component.html',\n imports: [GaIconModule, GaButtonModule],\n host: {\n role: 'alert',\n '[class]': `variantClass()`,\n },\n})\nexport class GaAlertComponent {\n protected readonly i18n = inject(GaAlertI18n);\n\n readonly dismissIcon: typeof X = X;\n\n readonly variant = input<GaAlertVariant>('brand');\n readonly explicitIcon = input<GaIconData>(undefined, { alias: 'icon' });\n readonly dismissible = input(false, { transform: booleanAttribute });\n\n readonly dismiss = output();\n\n readonly icon = computed(() => {\n if (this.explicitIcon() !== undefined) {\n return this.explicitIcon();\n }\n switch (this.variant()) {\n case 'information':\n return Info;\n case 'error':\n return OctagonAlert;\n case 'warning':\n return TriangleAlert;\n case 'success':\n return CircleCheck;\n }\n return null;\n });\n\n readonly title = contentChild(GaAlertTitleComponent);\n\n readonly variantClass = computed(() => {\n return `ga-notification ga-notification--${this.variant()}`;\n });\n}\n","@if (icon()) {\n <ga-icon [icon]=\"icon()!\" class=\"ga-notification__icon\" />\n}\n<div class=\"ga-notification__content\">\n @if (title()) {\n <div class=\"ga-notification__heading\">\n <ng-content select=\"ga-alert-title\" />\n <ng-content select=\"ga-alert-title-actions\" />\n </div>\n }\n <div class=\"ga-notification__description\">\n <ng-content />\n </div>\n</div>\n\n@if (dismissible()) {\n <button\n type=\"button\"\n [gaIconButton]=\"dismissIcon\"\n gaIconButtonVariant=\"ghost\"\n (click)=\"dismiss.emit()\"\n >\n {{ i18n.dismissLabel }}\n </button>\n}\n","import { Component, computed, input } from '@angular/core';\nimport { GaIconData, GaIconModule } from '../icon';\n\n@Component({\n selector: 'ga-alert-title-actions',\n template: `<ng-content />`,\n host: {\n class: 'ga-notification__title-actions',\n },\n})\nexport class GaAlertTitleActionsComponent {}\n","import { NgModule } from '@angular/core';\n\nimport { GaAlertComponent } from './alert.component';\nimport { GaAlertTitleComponent } from './alert-title.component';\nimport { GaAlertTitleActionsComponent } from './alert-title-actions.component';\n\n@NgModule({\n imports: [\n GaAlertComponent,\n GaAlertTitleComponent,\n GaAlertTitleActionsComponent,\n ],\n exports: [\n GaAlertComponent,\n GaAlertTitleComponent,\n GaAlertTitleActionsComponent,\n ],\n})\nexport class GaAlertModule {}\n","import { Component, computed, input } from '@angular/core';\n\nexport type GaBadgeVariant =\n | 'default'\n | 'default-inverted'\n | 'information'\n | 'error'\n | 'warning'\n | 'success'\n | 'muted'\n | 'disabled';\n\nexport type GaBadgeType = 'text' | 'dot';\n\n@Component({\n selector: 'ga-badge',\n template: `<ng-content />`,\n host: {\n '[class]': `variantClass()`,\n },\n})\nexport class GaBadgeComponent {\n readonly variant = input<GaBadgeVariant>('default');\n readonly type = input<GaBadgeType>('text');\n\n readonly variantClass = computed(() => {\n return `ga-badge ga-badge--${this.type()} ga-badge--${this.variant()}`;\n });\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaBadgeComponent } from './badge.component';\n\n@NgModule({\n imports: [GaBadgeComponent],\n exports: [GaBadgeComponent],\n})\nexport class GaBadgeModule {}\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ga-card',\n template: `<ng-content />`,\n host: {\n class: 'ga-card',\n '[class.ga-card--selectable]': 'selectable()',\n '[class.ga-card--disabled]': 'disabled()',\n },\n})\nexport class GaCardComponent {\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaCardComponent } from './card.component';\n\n@NgModule({\n imports: [GaCardComponent],\n exports: [GaCardComponent],\n})\nexport class GaCardModule {}\n","import {\n Attribute,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DoCheck,\n forwardRef,\n inject,\n Injector,\n input,\n linkedSignal,\n output,\n Provider,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Check, LucideAngularModule, Minus } from 'lucide-angular';\nimport { GaIconData } from '../icon/icon.component';\n\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GaCheckboxComponent),\n multi: true,\n};\n\n// Increasing integer for generating unique ids for checkbox components.\n// Inspired by @angular/components\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ga-checkbox',\n templateUrl: './checkbox.component.html',\n imports: [LucideAngularModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR],\n host: {\n class: 'ga-checkbox',\n '[class.ga-checkbox--invalid]': 'invalid()',\n '[attr.id]': 'null',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n '[attr.aria-invalid]': 'null',\n '[attr.aria-errormessage]': 'null',\n },\n})\nexport class GaCheckboxComponent implements ControlValueAccessor, DoCheck {\n /** @ignore */\n private readonly _uniqueId = `ga-checkbox-${++nextUniqueId}`;\n\n /** @ignore */\n private readonly injector = inject(Injector);\n\n readonly icons: { Minus: GaIconData; Check: GaIconData } = { Minus, Check };\n\n /** @ignore */\n private _onTouched?: () => any;\n /** @ignore */\n private _onModelChanged?: (value: any) => void;\n /** @ignore */\n private _invalidNgModel = signal(false);\n private _ngModelName = signal<string | number | null>(null);\n\n /** The value attribute of the native input element */\n readonly value = input<string | null>(null);\n readonly disabled = input(false, {\n transform: booleanAttribute,\n });\n readonly checked = input(false, {\n transform: booleanAttribute,\n });\n readonly nameInput = input<string | null>(null, { alias: 'name' });\n readonly id = input<string | null>(null);\n readonly indeterminate = input(false, { transform: booleanAttribute });\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaLabelledby = input<string | null>(null, {\n alias: 'aria-labelledby',\n });\n readonly ariaDescribedby = input<string | null>(null, {\n alias: 'aria-describedby',\n });\n readonly ariaInvalid = input<string | null>(null, { alias: 'aria-invalid' });\n readonly ariaErrormessage = input<string | null>(null, {\n alias: 'aria-errormessage',\n });\n readonly required = input(false, { transform: booleanAttribute });\n\n readonly disabledModel = linkedSignal(() => this.disabled());\n readonly checkedModel = linkedSignal(() => this.checked());\n\n readonly change = output<boolean>();\n readonly indeterminateChange = output<boolean>();\n\n /** @ignore */\n readonly inputId = computed(() => (this.id() ? this.id() : this._uniqueId));\n /** @ignore */\n readonly name = computed(() => {\n return this.nameInput() ?? this._ngModelName() ?? this._uniqueId;\n });\n /** @ignore */\n readonly invalid = computed(() => {\n return this.ariaInvalid()\n ? this.ariaInvalid() === 'true'\n : this._invalidNgModel();\n });\n\n constructor(\n /** @ignore */\n @Attribute('tabindex') protected readonly tabindex?: string,\n ) {}\n\n ngDoCheck(): void {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this._invalidNgModel.set(!!ngControl.invalid);\n this._ngModelName.set(ngControl.name);\n }\n }\n\n /** @ignore */\n onInputChange(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n\n if (this.disabled()) {\n return;\n }\n\n this.checkedModel.set(!this.checkedModel());\n this.updateModel();\n }\n\n /** @ignore */\n onBlur() {\n this._onTouched?.();\n }\n\n /** @ignore */\n registerOnChange(fn: (value: any) => void) {\n this._onModelChanged = fn;\n }\n\n /** @ignore */\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n /** @ignore */\n writeValue(value: any) {\n this.checkedModel.set(!!value);\n }\n\n /** @ignore */\n setDisabledState(isDisabled: boolean) {\n this.disabledModel.set(isDisabled);\n }\n\n /** @ignore */\n private updateModel() {\n this._onModelChanged?.(this.checkedModel());\n this.change.emit(this.checkedModel());\n }\n}\n","<input\n type=\"checkbox\"\n class=\"ga-checkbox__native\"\n [attr.id]=\"inputId()\"\n [name]=\"name()\"\n [checked]=\"checkedModel()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabledModel()\"\n [required]=\"required()\"\n [attr.value]=\"value()\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n<div class=\"ga-checkbox__marker\">\n <lucide-icon\n [img]=\"icons.Check\"\n class=\"ga-checkbox__marker__indicator-checked\"\n [size]=\"12\"\n [strokeWidth]=\"2\"\n [absoluteStrokeWidth]=\"true\"\n />\n <lucide-icon\n [img]=\"icons.Minus\"\n class=\"ga-checkbox__marker__indicator-indeterminate\"\n [size]=\"12\"\n [strokeWidth]=\"2\"\n [absoluteStrokeWidth]=\"true\"\n />\n</div>\n\n<label class=\"ga-checkbox__label\" [attr.for]=\"inputId()\"\n ><ng-content></ng-content\n></label>\n","import { Directive, Provider, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, CheckboxRequiredValidator } from '@angular/forms';\n\nexport const GA_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GaCheckboxRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Gaia checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `ga-checkbox`.\n */\n@Directive({\n selector: `ga-checkbox[required][formControlName], ga-checkbox[required][formControl], ga-checkbox[required][ngModel]`,\n providers: [GA_CHECKBOX_REQUIRED_VALIDATOR],\n})\nexport class GaCheckboxRequiredValidator extends CheckboxRequiredValidator {}\n","import { NgModule } from '@angular/core';\n\nimport { GaCheckboxRequiredValidator } from './checkbox-required.validator';\nimport { GaCheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [GaCheckboxComponent, GaCheckboxRequiredValidator],\n exports: [GaCheckboxComponent, GaCheckboxRequiredValidator],\n})\nexport class GaCheckboxModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n model,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'ga-segmented-control',\n templateUrl: './segmented-control.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'group',\n class: 'ga-segmented-control',\n },\n})\nexport class GaSegmentedControlComponent {\n readonly selected = model<string>();\n\n readonly change = output<string | undefined>();\n}\n","<ng-content select=\"button[gaSegmentedControlButton]\"></ng-content>\n","import {\n computed,\n Directive,\n HostListener,\n inject,\n input,\n} from '@angular/core';\n\nimport { GaSegmentedControlComponent } from './segmented-control.component';\n\n@Directive({\n selector: '[gaSegmentedControlButton]',\n host: {\n type: 'button',\n class: 'ga-segmented-control__button',\n '[class.ga-segmented-control__button--selected]': 'selected()',\n '[attr.aria-pressed]': 'selected()',\n },\n})\nexport class GaSegmentedControlButtonDirective {\n /** @ignore */\n private readonly group = inject(GaSegmentedControlComponent, { host: true });\n\n readonly value = input<string>();\n\n readonly selected = computed(() => {\n return (\n this.value() !== undefined &&\n this.group.selected() !== undefined &&\n this.group.selected() === this.value()\n );\n });\n\n @HostListener('click')\n onClick(): void {\n this.group.selected.set(this.value());\n this.group.change.emit(this.value());\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaSegmentedControlComponent } from './segmented-control.component';\nimport { GaSegmentedControlButtonDirective } from './segmented-control-button.directive';\n\n@NgModule({\n imports: [GaSegmentedControlComponent, GaSegmentedControlButtonDirective],\n exports: [GaSegmentedControlComponent, GaSegmentedControlButtonDirective],\n})\nexport class GaSegmentedControlModule {}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DoCheck,\n input,\n signal,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Component({\n selector: 'ga-input',\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ga-input',\n '[class.ga-input--invalid]': 'invalid()',\n },\n})\nexport class GaInputComponent implements DoCheck {\n private readonly implicitNgControl = contentChild(NgControl);\n private readonly implicitInvalid = signal(false);\n\n readonly invalidInput = input(null, { transform: booleanAttribute });\n\n readonly invalid = computed(() => {\n return this.invalidInput() ?? this.implicitInvalid();\n });\n\n ngDoCheck() {\n // we can rely on computed because `ivalid` of NgControl is not a signal, yet\n const implicitNgControl = this.implicitNgControl();\n if (implicitNgControl) {\n this.implicitInvalid.set(\n !!implicitNgControl.invalid && !!implicitNgControl.dirty,\n );\n }\n }\n}\n","import { Directive, InjectionToken, Signal } from '@angular/core';\n\nexport interface GaFormControl {\n readonly id: Signal<string>;\n}\n\nexport const GA_FORM_CONTROL = new InjectionToken<GaFormControl>(\n 'ga-form-control',\n);\n\n@Directive({\n selector: '[gaFormControl]',\n providers: [\n { provide: GA_FORM_CONTROL, useExisting: GaFormControlDirective },\n ],\n})\nexport class GaFormControlDirective {}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DoCheck,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { NgControl, ValidationErrors } from '@angular/forms';\nimport { GaInputComponent } from './input.component';\nimport { GA_FORM_CONTROL, GaFormControl } from '../form-field/form-control.di';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: '[gaInput]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id()',\n '[class.ga-input]': '!hasWrapper',\n '[class.ga-input--invalid]': '!hasWrapper && invalid()',\n },\n providers: [{ provide: GA_FORM_CONTROL, useExisting: GaInputDirective }],\n})\nexport class GaInputDirective implements DoCheck, GaFormControl {\n readonly uniqueId = `ga-input-${++nextUniqueId}`;\n\n private readonly implicitNgControl = inject(NgControl, {\n optional: true,\n self: true,\n });\n protected readonly hasWrapper = inject(GaInputComponent, { optional: true });\n\n private readonly implicitInvalid = signal(false);\n private readonly implicitErrors = signal<ValidationErrors | null>(null);\n\n readonly invalidInput = input(null, { transform: booleanAttribute });\n readonly idInput = input<string>(undefined, { alias: 'id' });\n\n readonly invalid = computed(() => {\n return this.invalidInput() ?? this.implicitInvalid();\n });\n readonly id = computed(() => {\n return this.idInput() ?? this.uniqueId;\n });\n readonly errors = this.implicitErrors.asReadonly();\n\n ngDoCheck() {\n if (this.hasWrapper) return;\n\n // we can rely on computed because `ivalid` of NgControl is not a signal, yet\n const implicitNgControl = this.implicitNgControl;\n if (implicitNgControl) {\n this.implicitInvalid.set(\n !!implicitNgControl.invalid && !!implicitNgControl.dirty,\n );\n this.implicitErrors.set(implicitNgControl.errors);\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaInputComponent } from './input.component';\nimport { GaInputDirective } from './input.directive';\n\n@NgModule({\n imports: [GaInputComponent, GaInputDirective],\n exports: [GaInputComponent, GaInputDirective],\n})\nexport class GaInputModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n} from '@angular/core';\nimport { GA_FORM_CONTROL } from './form-control.di';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ga-form-field',\n exportAs: 'gaFormField',\n templateUrl: './form-field.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ga-form-field',\n },\n})\nexport class GaFormFieldComponent {\n readonly uniqueId = `ga-form-field-${++nextUniqueId}`;\n\n readonly formControl = contentChild(GA_FORM_CONTROL);\n\n readonly controlId = computed(() => {\n return this.formControl()?.id() ?? this.uniqueId;\n });\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { GaFormFieldComponent } from './form-field.component';\n\n@Component({\n selector: 'ga-label',\n template: `<label [attr.for]=\"controlId()\" class=\"ga-form-field__label\"\n ><ng-content\n /></label>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GaFieldLabelComponent {\n readonly formField = inject(GaFormFieldComponent);\n\n readonly for = input<string>();\n\n readonly controlId = computed(() => {\n return this.for() ?? this.formField.controlId();\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ga-info',\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ga-form-field__info',\n },\n})\nexport class GaFieldInfoComponent {}\n","import { NgModule } from '@angular/core';\n\nimport { GaFormFieldComponent } from './form-field.component';\nimport { GaFieldLabelComponent } from './field-label.component';\nimport { GaFieldInfoComponent } from './field-info.component';\nimport { GaFormControlDirective } from './form-control.di';\n\n@NgModule({\n imports: [\n GaFormFieldComponent,\n GaFieldLabelComponent,\n GaFieldInfoComponent,\n GaFormControlDirective,\n ],\n exports: [\n GaFormFieldComponent,\n GaFieldLabelComponent,\n GaFieldInfoComponent,\n GaFormControlDirective,\n ],\n})\nexport class GaFormFieldModule {}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'ga-menu',\n template: `<ng-content />`,\n hostDirectives: [CdkMenu],\n host: {\n class: 'ga-menu',\n },\n styles: `\n :host {\n margin-top: var(--ga-size-8);\n margin-bottom: var(--ga-size-8);\n }\n `,\n})\nexport class GaMenuComponent {}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: '[gaMenuItem]',\n template: `<ng-content />`,\n hostDirectives: [CdkMenuItem],\n host: {\n class: 'ga-menu__item',\n },\n})\nexport class GaMenuItemComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ga-menu-title',\n template: `<ng-content />`,\n host: {\n class: 'ga-menu__title',\n },\n})\nexport class GaMenuTitleComponent {}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, effect, inject, input, TemplateRef } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, merge } from 'rxjs';\n\n@Directive({\n selector: '[gaMenuTrigger]',\n exportAs: 'gaMenuTrigger',\n standalone: true,\n hostDirectives: [CdkMenuTrigger],\n})\nexport class GaMenuTriggerDirective {\n private readonly cdkMenuTrigger = inject(CdkMenuTrigger);\n\n readonly menuRef = input.required<TemplateRef<any>>({\n alias: 'gaMenuTrigger',\n });\n\n readonly isOpen = toSignal(\n merge(\n this.cdkMenuTrigger.opened.pipe(map(() => true)),\n this.cdkMenuTrigger.closed.pipe(map(() => false)),\n ),\n { initialValue: this.cdkMenuTrigger.isOpen() },\n );\n\n constructor() {\n effect(() => {\n this.cdkMenuTrigger.menuTemplateRef = this.menuRef();\n });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ga-menu-separator',\n template: `<ng-content />`,\n host: {\n class: 'ga-menu__separator',\n },\n})\nexport class GaMenuSeparatorComponent {}\n","import { Component, computed, inject } from '@angular/core';\nimport { GaIconModule } from '../icon/icon.module';\nimport { ChevronDown, ChevronUp } from 'lucide-angular';\nimport { GaMenuTriggerDirective } from './menu-trigger.directive';\nimport { GaIconData } from '../icon/icon.component';\n\n@Component({\n selector: 'ga-menu-trigger-icon',\n imports: [GaIconModule],\n template: `<ga-icon [icon]=\"icon()\" />`,\n})\nexport class GaMenuTriggerIconComponent {\n protected readonly menuTrigger = inject(GaMenuTriggerDirective);\n\n protected readonly icon = computed<GaIconData>(() => {\n return this.menuTrigger.isOpen() ? ChevronUp : ChevronDown;\n });\n}\n","import { NgModule } from '@angular/core';\nimport { GaMenuComponent } from './menu.component';\nimport { GaMenuItemComponent } from './menu-item.component';\nimport { GaMenuTriggerDirective } from './menu-trigger.directive';\nimport { GaMenuSeparatorComponent } from './menu-separator.component';\nimport { GaMenuTitleComponent } from './menu-title.component';\nimport { GaMenuTriggerIconComponent } from './menu-trigger-icon.component';\n\n@NgModule({\n imports: [\n GaMenuComponent,\n GaMenuItemComponent,\n GaMenuTriggerDirective,\n GaMenuSeparatorComponent,\n GaMenuTitleComponent,\n GaMenuTriggerIconComponent,\n ],\n exports: [\n GaMenuComponent,\n GaMenuItemComponent,\n GaMenuTriggerDirective,\n GaMenuSeparatorComponent,\n GaMenuTitleComponent,\n GaMenuTriggerIconComponent,\n ],\n})\nexport class GaMenuModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n input,\n output,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\n\ntype Position = 'top' | 'bottom' | 'left' | 'right';\ntype Direction = 'start' | 'end' | 'center';\nexport type GaTooltipPlacement = `${Position}-${Direction}`;\nexport type GaTooltipControlMode = 'hover' | 'click' | 'none';\n\n@Component({\n selector: 'ga-tooltip',\n imports: [NgTemplateOutlet],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.style]': 'inlineStyle()',\n },\n})\nexport class GaTooltipComponent {\n private mouseLeaveSubject = new Subject<void>();\n readonly afterMouseLeave = () => this.mouseLeaveSubject.asObservable();\n\n readonly mouseOver = signal(false);\n\n readonly content = input.required<string | TemplateRef<any>>();\n\n readonly template = computed(() => {\n const content = this.content();\n return content instanceof TemplateRef ? content : null;\n });\n\n readonly text = computed(() => {\n const content = this.content();\n return typeof content === 'string' ? content : null;\n });\n\n readonly position = input<GaTooltipPlacement>();\n readonly offset = input<number>(0);\n\n readonly hideTriggered = output();\n readonly triggerHide = () => this.hideTriggered.emit();\n\n readonly inlineStyle = computed(() => {\n if (!this.position() || !this.offset()) {\n return '';\n }\n\n return `--ga-tooltip-offset: ${this.offset()}px;`;\n });\n\n readonly cssClass = computed(() => {\n return ['ga-tooltip', `ga-tooltip--${this.position()}`].join(' ');\n });\n\n @HostListener('mouseenter')\n handleMouseEnter(): void {\n this.mouseOver.set(true);\n }\n\n @HostListener('mouseleave')\n handleMouseLeave(): void {\n this.mouseOver.set(false);\n this.mouseLeaveSubject.next();\n }\n}\n","<div [class]=\"cssClass()\">\n @if (text()) {\n {{ text() }}\n } @else if (template()) {\n <ng-container\n [ngTemplateOutlet]=\"template()\"\n [ngTemplateOutletContext]=\"{ hide: triggerHide }\"\n />\n }\n</div>\n","import {\n Overlay,\n OverlayRef,\n FlexibleConnectedPositionStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n booleanAttribute,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n Input,\n NgZone,\n numberAttribute,\n OutputRefSubscription,\n TemplateRef,\n} from '@angular/core';\nimport { Subject, Observable, takeUntil, map } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n GaTooltipComponent,\n GaTooltipControlMode,\n GaTooltipPlacement,\n} from './tooltip.component';\n\nexport const GA_TOOLTIP_DEFAULT_OFFSET = 5;\n\n@Directive({\n selector: '[gaTooltip]',\n exportAs: 'gaTooltip',\n})\nexport class GaTooltipDirective {\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ngZone = inject(NgZone);\n\n protected destroyed$ = new Subject<void>();\n private _content: string | TemplateRef<any> | null = null;\n private tooltipInstanceDestroyed$: Subject<void> | null = null;\n private outputSubscription: OutputRefSubscription | null = null;\n private overlayRef?: OverlayRef;\n private tooltipPortal?: ComponentPortal<GaTooltipComponent>;\n private tooltipRef?: ComponentRef<GaTooltipComponent>;\n private get tooltipInstance() {\n return this.tooltipRef ? this.tooltipRef.instance : null;\n }\n private currentPosition$?: Observable<GaTooltipPlacement>;\n private _placement: GaTooltipPlacement = 'right-center';\n private _offset: number = GA_TOOLTIP_DEFAULT_OFFSET;\n private mouseOver: boolean = false;\n private _showControlMode: GaTooltipControlMode | null = null;\n private _hideControlMode: GaTooltipControlMode | null = null;\n\n @Input('gaTooltip')\n set content(value: string | TemplateRef<any> | null) {\n if (value === this._content) {\n return;\n }\n\n this._content = value;\n\n // Hide tooltip with empty content\n if (!this._content && this.overlayRef?.hasAttached()) {\n this.hide();\n return;\n }\n\n // Update the content in case tooltip is already opened\n if (this.tooltipRef && this.overlayRef?.hasAttached()) {\n this.tooltipRef.setInput('content', this._content);\n }\n }\n get content() {\n return this._content;\n }\n\n @Input({ alias: 'gaTooltipDisabled', transform: booleanAttribute })\n disabled = false;\n\n @Input({ alias: 'gaTooltipControlMode' })\n controlMode: GaTooltipControlMode = 'hover';\n\n /**\n * @default `gaTooltipControlMode`\n */\n @Input({ alias: 'gaTooltipShowControlMode' })\n set showControlMode(value: GaTooltipControlMode) {\n this._showControlMode = value;\n }\n get showControlMode(): GaTooltipControlMode {\n return this._showControlMode ?? this.controlMode;\n }\n\n /**\n * @default `gaTooltipControlMode`\n */\n @Input({ alias: 'gaTooltipHideControlMode' })\n set hideControlMode(value: GaTooltipControlMode) {\n this._hideControlMode = value;\n }\n get hideControlMode(): GaTooltipControlMode {\n return this._hideControlMode ?? this.controlMode;\n }\n\n @Input({ alias: 'gaTooltipOffsetSize', transform: numberAttribute })\n set offset(value) {\n if (this._offset === value) {\n return;\n }\n\n this._offset = !isNaN(value) ? value : GA_TOOLTIP_DEFAULT_OFFSET;\n this.updateTooltipPlacement();\n }\n get offset() {\n return this._offset;\n }\n\n @Input({ alias: 'gaTooltipPlacement' })\n set placement(value: GaTooltipPlacement) {\n if (this._placement === value) {\n return;\n }\n\n this._placement = value;\n\n this.updateTooltipPlacement();\n }\n get placement() {\n return this._placement;\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n }\n\n show(): void {\n if (this.overlayRef?.hasAttached()) {\n return;\n }\n\n const overlayRef = this.createOverlay();\n this.tooltipPortal =\n this.tooltipPortal ?? new ComponentPortal(GaTooltipComponent);\n\n this.tooltipInstanceDestroyed$ = new Subject();\n\n this.tooltipRef = overlayRef.attach(this.tooltipPortal);\n this.tooltipRef.setInput('content', this.content);\n this.outputSubscription = this.tooltipInstance!.hideTriggered.subscribe(\n () => setTimeout(() => this.hide()),\n );\n\n if (this.hideControlMode === 'hover') {\n // Soft hide tooltip on mouse leave when control mode is set to 'hover'\n this.tooltipInstance!.afterMouseLeave()\n .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n .subscribe(() => setTimeout(() => this.softHide()));\n } else if (this.hideControlMode === 'click') {\n // Hide tooltip on outside click when control mode is set to 'click'\n overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n .subscribe((event) => {\n const element = this.elementRef.nativeElement;\n if (event.target !== element && !element.contains(event.target)) {\n this.hide();\n }\n });\n }\n\n // Tell the instance current position (left, right, top, bottom)\n this.currentPosition$!.pipe(\n takeUntil(this.tooltipInstanceDestroyed$),\n ).subscribe((position) => {\n this.ngZone.run(() => {\n if (!this.tooltipRef) {\n return;\n }\n this.tooltipRef.setInput('position', position);\n this.tooltipRef.setInput('offset', this.offset);\n });\n });\n }\n\n hide(): void {\n if (!this.overlayRef?.hasAttached()) {\n return;\n }\n this.overlayRef.detach();\n this.tooltipInstanceDestroyed$!.next();\n this.tooltipInstanceDestroyed$!.complete();\n this.outputSubscription?.unsubscribe();\n this.tooltipRef = undefined;\n }\n\n toggle(): void {\n if (!this.overlayRef?.hasAttached()) {\n this.show();\n return;\n }\n this.hide();\n }\n\n @HostListener('click')\n handleMouseClick(): void {\n if (this.showControlMode !== 'click' || this.disabled || !this._content) {\n return;\n }\n this.toggle();\n }\n\n @HostListener('mouseenter')\n handleMouseEnter(): void {\n if (this.showControlMode !== 'hover' || this.disabled || !this._content) {\n return;\n }\n this.mouseOver = true;\n this.show();\n }\n\n @HostListener('mouseleave')\n handleMouseLeave(): void {\n if (this.hideControlMode !== 'hover' || this.disabled) {\n return;\n }\n this.mouseOver = false;\n setTimeout(() => this.softHide());\n }\n\n /**\n * hides only if mouse is not over the host element nor the tooltip itself\n */\n private softHide() {\n if (!this.mouseOver && !this.tooltipInstance?.mouseOver()) {\n this.hide();\n }\n }\n\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef);\n this.currentPosition$ = positionStrategy.positionChanges.pipe(\n map((pos) => pos.connectionPair.panelClass as GaTooltipPlacement),\n );\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n this.overlayRef = this.overlay.create({ positionStrategy, scrollStrategy });\n\n if (this.showControlMode !== 'none') {\n this.overlayRef\n .keydownEvents()\n .pipe(takeUntil(this.destroyed$))\n .subscribe((event) => {\n if (\n this.overlayRef?.hasAttached() &&\n event.keyCode === ESCAPE &&\n !hasModifierKey(event)\n ) {\n this.hide();\n }\n });\n }\n\n this.updatePosition();\n\n return this.overlayRef;\n }\n\n private updateTooltipPlacement(): void {\n if (this.overlayRef) {\n this.updatePosition();\n this.overlayRef.updatePosition();\n }\n }\n\n private updatePosition(): void {\n const position = this.overlayRef!.getConfig()\n .positionStrategy as FlexibleConnectedPositionStrategy;\n const positions = this.getPositions(this._placement);\n position.withPositions(positions);\n }\n\n private getPositions(\n preferredPlacement: GaTooltipPlacement,\n ): ConnectedPosition[] {\n let positionedOverlayY: ConnectedPosition['overlayY'];\n let positionedOffsetY: number;\n if (preferredPlacement.endsWith('start')) {\n positionedOverlayY = 'top';\n positionedOffsetY = -24;\n } else if (preferredPlacement.endsWith('end')) {\n positionedOverlayY = 'bottom';\n positionedOffsetY = 24;\n } else {\n positionedOverlayY = 'center';\n positionedOffsetY = 0;\n }\n\n let positionedOverlayX: ConnectedPosition['overlayX'];\n let positionedOffsetX: number;\n if (preferredPlacement.endsWith('start')) {\n positionedOverlayX = 'start';\n positionedOffsetX = -24;\n } else if (preferredPlacement.endsWith('end')) {\n positionedOverlayX = 'end';\n positionedOffsetX = 24;\n } else {\n positionedOffsetX = 0;\n positionedOverlayX = 'center';\n }\n\n const right: ConnectedPosition = {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: positionedOverlayY,\n offsetY: positionedOffsetY,\n panelClass: `right-${positionedOverlayY}`,\n };\n\n const left: ConnectedPosition = {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: positionedOverlayY,\n offsetY: positionedOffsetY,\n panelClass: `left-${positionedOverlayY}`,\n };\n\n const top: ConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: positionedOverlayX,\n overlayY: 'bottom',\n offsetX: positionedOffsetX,\n panelClass: `top-${positionedOverlayX}`,\n };\n\n const bottom: ConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: positionedOverlayX,\n overlayY: 'top',\n offsetX: positionedOffsetX,\n panelClass: `bottom-${positionedOverlayX}`,\n };\n\n if (preferredPlacement.startsWith('right')) {\n return [right, left, bottom, top];\n } else if (preferredPlacement.startsWith('left')) {\n return [left, right, bottom, top];\n } else if (preferredPlacement.startsWith('top')) {\n return [top, bottom, right, left];\n } else {\n return [bottom, top, right, left];\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { GaTooltipDirective } from './tooltip.directive';\n\n@NgModule({\n imports: [GaTooltipDirective],\n exports: [GaTooltipDirective],\n})\nexport class GaTooltipModule {}\n","import {\n Component,\n computed,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ga-spinner',\n template: `\n <svg\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n [attr.cx]=\"center()\"\n [attr.cy]=\"center()\"\n [attr.r]=\"radius()\"\n stroke=\"var(--ga-color-secondary)\"\n [attr.stroke-width]=\"strokeWidth()\"\n fill=\"none\"\n ></circle>\n <circle\n [attr.cx]=\"center()\"\n [attr.cy]=\"center()\"\n [attr.r]=\"radius()\"\n stroke=\"var(--ga-color-primary-70)\"\n [attr.stroke-width]=\"strokeWidth()\"\n stroke-linecap=\"round\"\n fill=\"none\"\n [attr.stroke-dasharray]=\"arcCircumference() + ' ' + circumference()\"\n style=\"transform-origin: center; animation: ga-spinner__animation 1100ms linear infinite;\"\n ></circle>\n </svg>\n `,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ga-spinner',\n },\n styles: `\n .ga-spinner {\n display: inline-block;\n }\n\n @keyframes ga-spinner__animation {\n 0% {\n transform: rotate(0deg);\n }\n 31.82% {\n /* 350ms / 1100ms */\n transform: rotate(90deg);\n }\n 63.64% {\n /* (350ms + 350ms) / 1100ms */\n transform: rotate(180deg);\n }\n 81.82% {\n /* (350ms + 350ms + 200ms) / 1100ms */\n transform: rotate(270deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n `,\n})\nexport class GaSpinnerComponent {\n readonly size = input(32, { transform: numberAttribute });\n\n readonly strokeWidth = computed(() => this.size() / 5);\n readonly center = computed(() => this.size() / 2);\n readonly radius = computed(() => (this.size() - this.strokeWidth()) / 2);\n readonly circumference = computed(() => 2 * Math.PI * this.radius());\n readonly arcCircumference = computed(() => this.circumference() * 0.25);\n}\n","import { NgModule } from '@angular/core';\n\nimport { GaSpinnerComponent } from './spinner.component';\n\n@NgModule({\n imports: [GaSpinnerComponent],\n exports: [GaSpinnerComponent],\n})\nexport class GaSpinnerModule {}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n linkedSignal,\n output,\n Provider,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Provider Expression that allows ga-radio-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)] and ngControl.\n */\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GaRadioGroupComponent),\n multi: true,\n};\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ga-radio-group',\n templateUrl: './radio-group.component.html',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radiogroup',\n class: 'ga-radio-group',\n },\n})\nexport class GaRadioGroupComponent implements ControlValueAccessor {\n /** Name of the radio button group. All radio buttons inside this group will use this name. */\n readonly name = input<string>(`ga-radio-group-${nextUniqueId++}`);\n /**\n * Value for the radio-group. Should equal the value of the selected radio button if there is\n * a corresponding radio button with a matching value. If there is not such a corresponding\n * radio button, this value persists to be applied in case a new radio button is added with a\n * matching value.\n */\n readonly value = input<string | null>(null);\n /** Whether the radio group is disabled */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * a radio button (the same behavior as `<input type=\"radio\">`).\n */\n readonly change = output<string | null>();\n\n readonly valueModel = linkedSignal(() => this.value());\n readonly disabledModel = linkedSignal(() => this.disabled());\n\n private _onTouched?: () => any;\n private _onModelChanged?: (value: any) => void;\n\n registerOnChange(fn: (value: any) => void) {\n this._onModelChanged = fn;\n }\n\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n writeValue(value: any) {\n this.valueModel.set(value);\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabledModel.set(isDisabled);\n }\n\n onValueChange(value: string | null) {\n if (this.valueModel() === value) {\n return;\n }\n this.valueModel.set(value);\n this.change.emit(value);\n if (this._onModelChanged) {\n this._onModelChanged(value);\n }\n }\n\n onBlur() {\n if (this._onTouched) {\n this._onTouched();\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n Attribute,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { GaRadioGroupComponent } from './radio-group.component';\n\n// Increasing integer for generating unique ids for radio button components.\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ga-radio-button',\n templateUrl: './radio-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ga-radio-button',\n '[class.ga-radio-button--invalid]': 'ariaInvalid()',\n '[attr.id]': 'null',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n },\n})\nexport class GaRadioButtonComponent {\n private readonly radioGroup = inject(GaRadioGroupComponent, {\n optional: true,\n });\n\n private _uniqueId = `ga-radio-button-${++nextUniqueId}`;\n\n /** The value attribute of the native input element */\n readonly value = input<string | null>(null);\n readonly inputId = input<string | null>(null, { alias: 'id' });\n readonly inputName = input<string | null>(null, { alias: 'name' });\n readonly inputChecked = input(false, {\n alias: 'checked',\n transform: booleanAttribute,\n });\n readonly inputDisabled = input(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaLabelledby = input<string | null>(null, {\n alias: 'aria-labelledby',\n });\n readonly ariaDescribedby = input<string | null>(null, {\n alias: 'aria-describedby',\n });\n readonly ariaInvalid = input<string | null>(null, { alias: 'aria-invalid' });\n readonly ariaErrormessage = input<string | null>(null, {\n alias: 'aria-errormessage',\n });\n\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * a radio button (the same behavior as `<input type=\"radio\">`).\n */\n readonly change = output<string | null>();\n\n readonly id = computed(() => this.inputId() ?? this._uniqueId);\n readonly name = computed(\n () => this.radioGroup?.name() ?? this.inputName() ?? this._uniqueId,\n );\n readonly disabled = computed(\n () => this.radioGroup?.disabledModel() || this.inputDisabled(),\n );\n\n protected readonly checked = computed(\n () => this.radioGroup?.valueModel() === this.value() || this.inputChecked(),\n );\n\n constructor(@Attribute('tabindex') protected readonly tabindex?: string) {}\n\n onInputChange(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n\n if (this.disabled()) {\n return;\n }\n\n this.change.emit(this.value());\n this.radioGroup?.onValueChange(this.value());\n }\n\n onBlur() {\n this.radioGroup?.onBlur();\n }\n}\n","<input\n type=\"radio\"\n class=\"ga-radio-button__native\"\n [attr.id]=\"id()\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.tabindex]=\"tabindex\"\n [attr.value]=\"value()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-errormessage]=\"ariaErrormessage()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n/>\n\n<div class=\"ga-radio-button__marker\"></div>\n<label class=\"ga-radio-button__label\" [attr.for]=\"id()\"\n ><ng-content></ng-content\n></label>\n","import { NgModule } from '@angular/core';\nimport { GaRadioButtonComponent } from './radio-button.component';\nimport { GaRadioGroupComponent } from './radio-group.component';\n\n@NgModule({\n imports: [GaRadioButtonComponent, GaRadioGroupComponent],\n exports: [GaRadioButtonComponent, GaRadioGroupComponent],\n})\nexport class GaRadioModule {}\n","/*\n * Public API Surface of ngx-gaia\n */\n\nexport * from './lib/alert/index';\nexport * from './lib/badge/index';\nexport * from './lib/button/index';\nexport * from './lib/card/index';\nexport * from './lib/checkbox/index';\nexport * from './lib/segmented-control/index';\nexport * from './lib/icon/index';\nexport * from './lib/input/index';\nexport * from './lib/form-field/index';\nexport * from './lib/menu/index';\nexport * from './lib/tooltip/index';\nexport * from './lib/spinner/index';\nexport * from './lib/radio/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GaIconComponent","i2.GaIconButtonDirective","nextUniqueId","i1"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DoCheck, Provider } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { GaIconData } from '../icon/icon.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider;
|
|
5
6
|
export declare class GaCheckboxComponent implements ControlValueAccessor, DoCheck {
|
|
@@ -9,6 +10,10 @@ export declare class GaCheckboxComponent implements ControlValueAccessor, DoChec
|
|
|
9
10
|
private readonly _uniqueId;
|
|
10
11
|
/** @ignore */
|
|
11
12
|
private readonly injector;
|
|
13
|
+
readonly icons: {
|
|
14
|
+
Minus: GaIconData;
|
|
15
|
+
Check: GaIconData;
|
|
16
|
+
};
|
|
12
17
|
/** @ignore */
|
|
13
18
|
private _onTouched?;
|
|
14
19
|
/** @ignore */
|
package/lib/menu/index.d.ts
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GaMenuTriggerDirective } from './menu-trigger.directive';
|
|
2
|
+
import { GaIconData } from '../icon/icon.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class GaMenuTriggerIconComponent {
|
|
5
|
+
protected readonly menuTrigger: GaMenuTriggerDirective;
|
|
6
|
+
protected readonly icon: import("@angular/core").Signal<GaIconData>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GaMenuTriggerIconComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GaMenuTriggerIconComponent, "ga-menu-trigger-icon", never, {}, {}, never, never, true, never>;
|
|
9
|
+
}
|
|
@@ -4,7 +4,8 @@ import * as i1 from "@angular/cdk/menu";
|
|
|
4
4
|
export declare class GaMenuTriggerDirective {
|
|
5
5
|
private readonly cdkMenuTrigger;
|
|
6
6
|
readonly menuRef: import("@angular/core").InputSignal<TemplateRef<any>>;
|
|
7
|
+
readonly isOpen: import("@angular/core").Signal<boolean>;
|
|
7
8
|
constructor();
|
|
8
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<GaMenuTriggerDirective, never>;
|
|
9
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<GaMenuTriggerDirective, "[gaMenuTrigger]",
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<GaMenuTriggerDirective, "[gaMenuTrigger]", ["gaMenuTrigger"], { "menuRef": { "alias": "gaMenuTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkMenuTrigger; inputs: {}; outputs: {}; }]>;
|
|
10
11
|
}
|
|
@@ -4,8 +4,9 @@ import * as i2 from "./menu-item.component";
|
|
|
4
4
|
import * as i3 from "./menu-trigger.directive";
|
|
5
5
|
import * as i4 from "./menu-separator.component";
|
|
6
6
|
import * as i5 from "./menu-title.component";
|
|
7
|
+
import * as i6 from "./menu-trigger-icon.component";
|
|
7
8
|
export declare class GaMenuModule {
|
|
8
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<GaMenuModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<GaMenuModule, never, [typeof i1.GaMenuComponent, typeof i2.GaMenuItemComponent, typeof i3.GaMenuTriggerDirective, typeof i4.GaMenuSeparatorComponent, typeof i5.GaMenuTitleComponent], [typeof i1.GaMenuComponent, typeof i2.GaMenuItemComponent, typeof i3.GaMenuTriggerDirective, typeof i4.GaMenuSeparatorComponent, typeof i5.GaMenuTitleComponent]>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<GaMenuModule, never, [typeof i1.GaMenuComponent, typeof i2.GaMenuItemComponent, typeof i3.GaMenuTriggerDirective, typeof i4.GaMenuSeparatorComponent, typeof i5.GaMenuTitleComponent, typeof i6.GaMenuTriggerIconComponent], [typeof i1.GaMenuComponent, typeof i2.GaMenuItemComponent, typeof i3.GaMenuTriggerDirective, typeof i4.GaMenuSeparatorComponent, typeof i5.GaMenuTitleComponent, typeof i6.GaMenuTriggerIconComponent]>;
|
|
10
11
|
static ɵinj: i0.ɵɵInjectorDeclaration<GaMenuModule>;
|
|
11
12
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class GaRadioButtonComponent {
|
|
3
|
+
protected readonly tabindex?: string | undefined;
|
|
4
|
+
private readonly radioGroup;
|
|
5
|
+
private _uniqueId;
|
|
6
|
+
/** The value attribute of the native input element */
|
|
7
|
+
readonly value: import("@angular/core").InputSignal<string | null>;
|
|
8
|
+
readonly inputId: import("@angular/core").InputSignal<string | null>;
|
|
9
|
+
readonly inputName: import("@angular/core").InputSignal<string | null>;
|
|
10
|
+
readonly inputChecked: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
11
|
+
readonly inputDisabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
12
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
13
|
+
readonly ariaLabelledby: import("@angular/core").InputSignal<string | null>;
|
|
14
|
+
readonly ariaDescribedby: import("@angular/core").InputSignal<string | null>;
|
|
15
|
+
readonly ariaInvalid: import("@angular/core").InputSignal<string | null>;
|
|
16
|
+
readonly ariaErrormessage: import("@angular/core").InputSignal<string | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Event emitted when the group value changes.
|
|
19
|
+
* Change events are only emitted when the value changes due to user interaction with
|
|
20
|
+
* a radio button (the same behavior as `<input type="radio">`).
|
|
21
|
+
*/
|
|
22
|
+
readonly change: import("@angular/core").OutputEmitterRef<string | null>;
|
|
23
|
+
readonly id: import("@angular/core").Signal<string>;
|
|
24
|
+
readonly name: import("@angular/core").Signal<string>;
|
|
25
|
+
readonly disabled: import("@angular/core").Signal<boolean>;
|
|
26
|
+
protected readonly checked: import("@angular/core").Signal<boolean>;
|
|
27
|
+
constructor(tabindex?: string | undefined);
|
|
28
|
+
onInputChange(event: Event): void;
|
|
29
|
+
onBlur(): void;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GaRadioButtonComponent, [{ attribute: "tabindex"; }]>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GaRadioButtonComponent, "ga-radio-button", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "inputId": { "alias": "id"; "required": false; "isSignal": true; }; "inputName": { "alias": "name"; "required": false; "isSignal": true; }; "inputChecked": { "alias": "checked"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "aria-invalid"; "required": false; "isSignal": true; }; "ariaErrormessage": { "alias": "aria-errormessage"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, ["*"], true, never>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Provider } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Provider Expression that allows ga-radio-group to register as a ControlValueAccessor.
|
|
6
|
+
* This allows it to support [(ngModel)] and ngControl.
|
|
7
|
+
*/
|
|
8
|
+
export declare const RADIO_CONTROL_VALUE_ACCESSOR: Provider;
|
|
9
|
+
export declare class GaRadioGroupComponent implements ControlValueAccessor {
|
|
10
|
+
/** Name of the radio button group. All radio buttons inside this group will use this name. */
|
|
11
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Value for the radio-group. Should equal the value of the selected radio button if there is
|
|
14
|
+
* a corresponding radio button with a matching value. If there is not such a corresponding
|
|
15
|
+
* radio button, this value persists to be applied in case a new radio button is added with a
|
|
16
|
+
* matching value.
|
|
17
|
+
*/
|
|
18
|
+
readonly value: import("@angular/core").InputSignal<string | null>;
|
|
19
|
+
/** Whether the radio group is disabled */
|
|
20
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* Event emitted when the group value changes.
|
|
23
|
+
* Change events are only emitted when the value changes due to user interaction with
|
|
24
|
+
* a radio button (the same behavior as `<input type="radio">`).
|
|
25
|
+
*/
|
|
26
|
+
readonly change: import("@angular/core").OutputEmitterRef<string | null>;
|
|
27
|
+
readonly valueModel: import("@angular/core").WritableSignal<string | null>;
|
|
28
|
+
readonly disabledModel: import("@angular/core").WritableSignal<boolean>;
|
|
29
|
+
private _onTouched?;
|
|
30
|
+
private _onModelChanged?;
|
|
31
|
+
registerOnChange(fn: (value: any) => void): void;
|
|
32
|
+
registerOnTouched(fn: any): void;
|
|
33
|
+
writeValue(value: any): void;
|
|
34
|
+
setDisabledState(isDisabled: boolean): void;
|
|
35
|
+
onValueChange(value: string | null): void;
|
|
36
|
+
onBlur(): void;
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GaRadioGroupComponent, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GaRadioGroupComponent, "ga-radio-group", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, ["*"], true, never>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./radio-button.component";
|
|
3
|
+
import * as i2 from "./radio-group.component";
|
|
4
|
+
export declare class GaRadioModule {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GaRadioModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<GaRadioModule, never, [typeof i1.GaRadioButtonComponent, typeof i2.GaRadioGroupComponent], [typeof i1.GaRadioButtonComponent, typeof i2.GaRadioGroupComponent]>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<GaRadioModule>;
|
|
8
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vsn-ux/ngx-gaia",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^19.0.0",
|
|
6
6
|
"@angular/common": "^19.0.0",
|
|
7
7
|
"@angular/core": "^19.0.0",
|
|
8
|
-
"@vsn-ux/gaia-styles": "^0.
|
|
8
|
+
"@vsn-ux/gaia-styles": "^0.2.0",
|
|
9
9
|
"lucide-angular": "^0.475.0"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
package/public-api.d.ts
CHANGED