@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.
@@ -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$2 = 0;
320
+ let nextUniqueId$4 = 0;
320
321
  class GaCheckboxComponent {
321
322
  tabindex;
322
323
  /** @ignore */
323
- _uniqueId = `ga-checkbox-${++nextUniqueId$2}`;
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 <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", changeDetection: i0.ChangeDetectionStrategy.OnPush });
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 <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" }]
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$1 = 0;
585
+ let nextUniqueId$3 = 0;
584
586
  class GaInputDirective {
585
- uniqueId = `ga-input-${++nextUniqueId$1}`;
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], exports: [GaMenuComponent,
833
+ GaMenuTitleComponent,
834
+ GaMenuTriggerIconComponent], exports: [GaMenuComponent,
813
835
  GaMenuItemComponent,
814
836
  GaMenuTriggerDirective,
815
837
  GaMenuSeparatorComponent,
816
- GaMenuTitleComponent] });
817
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaMenuModule });
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 */
@@ -3,4 +3,5 @@ export * from './menu-item.component';
3
3
  export * from './menu-title.component';
4
4
  export * from './menu-trigger.directive';
5
5
  export * from './menu-separator.component';
6
+ export * from './menu-trigger-icon.component';
6
7
  export * from './menu.module';
@@ -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]", never, { "menuRef": { "alias": "gaMenuTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkMenuTrigger; inputs: {}; outputs: {}; }]>;
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,3 @@
1
+ export * from './radio-button.component';
2
+ export * from './radio-group.component';
3
+ export * from './radio.module';
@@ -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.1.5",
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.1.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
@@ -10,3 +10,4 @@ export * from './lib/form-field/index';
10
10
  export * from './lib/menu/index';
11
11
  export * from './lib/tooltip/index';
12
12
  export * from './lib/spinner/index';
13
+ export * from './lib/radio/index';