@vsn-ux/ngx-gaia 0.7.0 → 0.7.1

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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, makeEnvironmentProviders, inject, ElementRef, input, numberAttribute, computed, Component, ViewEncapsulation, Attribute, NgModule, ChangeDetectionStrategy, Injectable, booleanAttribute, output, contentChild, forwardRef, Injector, signal, linkedSignal, Directive, model, HostListener, TemplateRef, NgZone, Input, HostBinding, effect, DestroyRef, afterNextRender, Renderer2, afterRender, contentChildren, viewChild } from '@angular/core';
2
+ import { InjectionToken, makeEnvironmentProviders, inject, ElementRef, input, numberAttribute, computed, Component, ViewEncapsulation, Attribute, NgModule, Injectable, booleanAttribute, ChangeDetectionStrategy, output, contentChild, forwardRef, Injector, signal, linkedSignal, Directive, model, HostListener, TemplateRef, NgZone, Input, HostBinding, effect, DestroyRef, afterNextRender, Renderer2, afterRender, contentChildren, viewChild } from '@angular/core';
3
3
  import * as i1 from 'lucide-angular';
4
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, RequiredValidator } from '@angular/forms';
@@ -104,52 +104,221 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
104
104
  }]
105
105
  }] });
106
106
 
107
+ function GA_BUTTON_I18N_FACTORY() {
108
+ return new GaButtonI18nDefault();
109
+ }
110
+ class GaButtonI18n {
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonI18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
112
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonI18n, providedIn: 'root', useFactory: GA_BUTTON_I18N_FACTORY });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonI18n, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root',
118
+ useFactory: GA_BUTTON_I18N_FACTORY,
119
+ }]
120
+ }] });
121
+ class GaButtonI18nDefault extends GaButtonI18n {
122
+ /** A label for the default loading state */
123
+ loadingLabel = 'Loading...';
124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonI18nDefault, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
125
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonI18nDefault });
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonI18nDefault, decorators: [{
128
+ type: Injectable
129
+ }] });
130
+ function provideGaButtonI18n(value) {
131
+ return makeEnvironmentProviders([
132
+ typeof value === 'function'
133
+ ? { provide: GaButtonI18n, useFactory: value }
134
+ : { provide: GaButtonI18n, useValue: value },
135
+ ]);
136
+ }
137
+
138
+ class GaSpinnerComponent {
139
+ size = input(32, { transform: numberAttribute });
140
+ strokeWidth = computed(() => this.size() / 5);
141
+ center = computed(() => this.size() / 2);
142
+ radius = computed(() => (this.size() - this.strokeWidth()) / 2);
143
+ circumference = computed(() => 2 * Math.PI * this.radius());
144
+ arcCircumference = computed(() => this.circumference() * 0.25);
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
146
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaSpinnerComponent, isStandalone: true, selector: "ga-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar", "tabindex": "-1" }, properties: { "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.mode": "'indeterminate'" }, classAttribute: "ga-spinner" }, ngImport: i0, template: `
147
+ <svg
148
+ [attr.width]="size()"
149
+ [attr.height]="size()"
150
+ [attr.viewBox]="'0 0 ' + size() + ' ' + size()"
151
+ xmlns="http://www.w3.org/2000/svg"
152
+ >
153
+ <circle
154
+ [attr.cx]="center()"
155
+ [attr.cy]="center()"
156
+ [attr.r]="radius()"
157
+ stroke="var(--ga-color-secondary)"
158
+ [attr.stroke-width]="strokeWidth()"
159
+ fill="none"
160
+ ></circle>
161
+ <circle
162
+ [attr.cx]="center()"
163
+ [attr.cy]="center()"
164
+ [attr.r]="radius()"
165
+ stroke="var(--ga-color-primary-70)"
166
+ [attr.stroke-width]="strokeWidth()"
167
+ stroke-linecap="round"
168
+ fill="none"
169
+ [attr.stroke-dasharray]="arcCircumference() + ' ' + circumference()"
170
+ style="transform-origin: center; animation: ga-spinner__animation 1100ms linear infinite;"
171
+ ></circle>
172
+ </svg>
173
+ `, isInline: true, styles: [".ga-spinner{display:inline-block}@keyframes ga-spinner__animation{0%{transform:rotate(0)}31.82%{transform:rotate(90deg)}63.64%{transform:rotate(180deg)}81.82%{transform:rotate(270deg)}to{transform:rotate(360deg)}}\n"], encapsulation: i0.ViewEncapsulation.None });
174
+ }
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaSpinnerComponent, decorators: [{
176
+ type: Component,
177
+ args: [{ selector: 'ga-spinner', template: `
178
+ <svg
179
+ [attr.width]="size()"
180
+ [attr.height]="size()"
181
+ [attr.viewBox]="'0 0 ' + size() + ' ' + size()"
182
+ xmlns="http://www.w3.org/2000/svg"
183
+ >
184
+ <circle
185
+ [attr.cx]="center()"
186
+ [attr.cy]="center()"
187
+ [attr.r]="radius()"
188
+ stroke="var(--ga-color-secondary)"
189
+ [attr.stroke-width]="strokeWidth()"
190
+ fill="none"
191
+ ></circle>
192
+ <circle
193
+ [attr.cx]="center()"
194
+ [attr.cy]="center()"
195
+ [attr.r]="radius()"
196
+ stroke="var(--ga-color-primary-70)"
197
+ [attr.stroke-width]="strokeWidth()"
198
+ stroke-linecap="round"
199
+ fill="none"
200
+ [attr.stroke-dasharray]="arcCircumference() + ' ' + circumference()"
201
+ style="transform-origin: center; animation: ga-spinner__animation 1100ms linear infinite;"
202
+ ></circle>
203
+ </svg>
204
+ `, encapsulation: ViewEncapsulation.None, host: {
205
+ class: 'ga-spinner',
206
+ role: 'progressbar',
207
+ '[attr.aria-valuemin]': '0',
208
+ '[attr.aria-valuemax]': '100',
209
+ '[attr.mode]': "'indeterminate'",
210
+ tabindex: '-1',
211
+ }, styles: [".ga-spinner{display:inline-block}@keyframes ga-spinner__animation{0%{transform:rotate(0)}31.82%{transform:rotate(90deg)}63.64%{transform:rotate(180deg)}81.82%{transform:rotate(270deg)}to{transform:rotate(360deg)}}\n"] }]
212
+ }] });
213
+
107
214
  class GaButtonDirective {
215
+ i18n = inject(GaButtonI18n);
216
+ el = inject(ElementRef);
108
217
  variant = input.required({
109
218
  alias: 'gaButton',
110
219
  });
220
+ isLoading = input(false, {
221
+ alias: 'gaButtonLoading',
222
+ transform: booleanAttribute,
223
+ });
224
+ loadingLabel = input(this.i18n.loadingLabel, {
225
+ alias: 'gaButtonLoadingLabel',
226
+ });
227
+ disabledImplicit = input(false, {
228
+ alias: 'disabled',
229
+ transform: booleanAttribute,
230
+ });
231
+ disabled = computed(() => {
232
+ if (this.el.nativeElement.tagName === 'A') {
233
+ return null;
234
+ }
235
+ return this.isLoading() || this.disabledImplicit() ? '' : null;
236
+ });
111
237
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaButtonDirective, isStandalone: true, selector: "button[gaButton], a[gaButton]", inputs: { variant: { classPropertyName: "variant", publicName: "gaButton", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.ga-button--secondary": "!variant() || variant() === 'secondary'", "class.ga-button--primary": "variant() === 'primary'", "class.ga-button--ghost": "variant() === 'ghost'", "class.ga-button--transparent": "variant() === 'transparent'" }, classAttribute: "ga-button" }, ngImport: i0, template: `<ng-content />`, isInline: true });
238
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: GaButtonDirective, isStandalone: true, selector: "button[gaButton], a[gaButton]", inputs: { variant: { classPropertyName: "variant", publicName: "gaButton", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "gaButtonLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "gaButtonLoadingLabel", isSignal: true, isRequired: false, transformFunction: null }, disabledImplicit: { classPropertyName: "disabledImplicit", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ga-button--secondary": "!variant() || variant() === 'secondary'", "class.ga-button--primary": "variant() === 'primary'", "class.ga-button--ghost": "variant() === 'ghost'", "class.ga-button--transparent": "variant() === 'transparent'", "attr.disabled": "disabled()", "attr.aria-busy": "isLoading() ? \"true\" : null" }, classAttribute: "ga-button" }, ngImport: i0, template: `
239
+ @if (isLoading()) {
240
+ <ga-spinner size="16" />
241
+ <span class="ga-button__loading-label">{{ loadingLabel() }}</span>
242
+ } @else {
243
+ <ng-content />
244
+ }
245
+ `, isInline: true, styles: [".ga-button__loading-label{color:var(--ga-color-text-body);font-weight:400;font-size:calc(var(--ga-text-sm-font-size) * var(--ga-base-scaling-factor, 1));line-height:calc(var(--ga-text-sm-line-height) * var(--ga-base-scaling-factor, 1));letter-spacing:0}\n"], dependencies: [{ kind: "component", type: GaSpinnerComponent, selector: "ga-spinner", inputs: ["size"] }], encapsulation: i0.ViewEncapsulation.None });
113
246
  }
114
247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaButtonDirective, decorators: [{
115
248
  type: Component,
116
- args: [{
117
- selector: 'button[gaButton], a[gaButton]',
118
- host: {
249
+ args: [{ selector: 'button[gaButton], a[gaButton]', imports: [GaSpinnerComponent], template: `
250
+ @if (isLoading()) {
251
+ <ga-spinner size="16" />
252
+ <span class="ga-button__loading-label">{{ loadingLabel() }}</span>
253
+ } @else {
254
+ <ng-content />
255
+ }
256
+ `, encapsulation: ViewEncapsulation.None, host: {
119
257
  class: 'ga-button',
120
258
  '[class.ga-button--secondary]': `!variant() || variant() === 'secondary'`,
121
259
  '[class.ga-button--primary]': `variant() === 'primary'`,
122
260
  '[class.ga-button--ghost]': `variant() === 'ghost'`,
123
261
  '[class.ga-button--transparent]': `variant() === 'transparent'`,
124
- },
125
- template: `<ng-content />`,
126
- }]
262
+ '[attr.disabled]': 'disabled()',
263
+ '[attr.aria-busy]': 'isLoading() ? "true" : null',
264
+ }, styles: [".ga-button__loading-label{color:var(--ga-color-text-body);font-weight:400;font-size:calc(var(--ga-text-sm-font-size) * var(--ga-base-scaling-factor, 1));line-height:calc(var(--ga-text-sm-line-height) * var(--ga-base-scaling-factor, 1));letter-spacing:0}\n"] }]
127
265
  }] });
128
266
 
129
267
  class GaIconButtonDirective {
268
+ i18n = inject(GaButtonI18n);
269
+ el = inject(ElementRef);
130
270
  icon = input.required({
131
271
  alias: 'gaIconButton',
132
272
  });
133
273
  variant = input('secondary', {
134
274
  alias: 'gaIconButtonVariant',
135
275
  });
276
+ isLoading = input(false, {
277
+ alias: 'gaIconButtonLoading',
278
+ transform: booleanAttribute,
279
+ });
280
+ loadingLabel = input(this.i18n.loadingLabel, {
281
+ alias: 'gaIconButtonLoadingLabel',
282
+ });
283
+ disabledImplicit = input(false, {
284
+ alias: 'disabled',
285
+ transform: booleanAttribute,
286
+ });
287
+ disabled = computed(() => {
288
+ if (this.el.nativeElement.tagName === 'A') {
289
+ return null;
290
+ }
291
+ return this.isLoading() || this.disabledImplicit() ? '' : null;
292
+ });
136
293
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaIconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaIconButtonDirective, isStandalone: true, selector: "button[gaIconButton], a[gaIconButton]", inputs: { icon: { classPropertyName: "icon", publicName: "gaIconButton", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "gaIconButtonVariant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ga-button--primary": "variant() === 'primary'", "class.ga-button--secondary": "variant() === 'secondary'", "class.ga-button--ghost": "variant() === 'ghost'", "class.ga-button--transparent": "variant() === 'transparent'" }, classAttribute: "ga-button ga-button--icon-only" }, ngImport: i0, template: `
138
- <ga-icon [icon]="icon()" />
139
- <span class="ga-button__icon-label"><ng-content /></span>
140
- `, isInline: true, styles: [".ga-button__icon-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border-width:0!important}\n"], dependencies: [{ kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
294
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: GaIconButtonDirective, isStandalone: true, selector: "button[gaIconButton], a[gaIconButton]", inputs: { icon: { classPropertyName: "icon", publicName: "gaIconButton", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "gaIconButtonVariant", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "gaIconButtonLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "gaIconButtonLoadingLabel", isSignal: true, isRequired: false, transformFunction: null }, disabledImplicit: { classPropertyName: "disabledImplicit", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ga-button--primary": "variant() === 'primary'", "class.ga-button--secondary": "variant() === 'secondary'", "class.ga-button--ghost": "variant() === 'ghost'", "class.ga-button--transparent": "variant() === 'transparent'", "attr.disabled": "disabled()", "attr.aria-busy": "isLoading() ? \"true\" : null" }, classAttribute: "ga-button ga-button--icon-only" }, ngImport: i0, template: `
295
+ @if (isLoading()) {
296
+ <ga-spinner size="16" />
297
+ <span class="ga-button__icon-label">{{ loadingLabel() }}</span>
298
+ } @else {
299
+ <ga-icon [icon]="icon()" />
300
+ <span class="ga-button__icon-label"><ng-content /></span>
301
+ }
302
+ `, isInline: true, styles: [".ga-button__icon-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border-width:0!important}\n"], dependencies: [{ kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }, { kind: "component", type: GaSpinnerComponent, selector: "ga-spinner", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
141
303
  }
142
304
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaIconButtonDirective, decorators: [{
143
305
  type: Component,
144
- args: [{ selector: 'button[gaIconButton], a[gaIconButton]', imports: [GaIconModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
145
- <ga-icon [icon]="icon()" />
146
- <span class="ga-button__icon-label"><ng-content /></span>
306
+ args: [{ selector: 'button[gaIconButton], a[gaIconButton]', imports: [GaIconModule, GaSpinnerComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
307
+ @if (isLoading()) {
308
+ <ga-spinner size="16" />
309
+ <span class="ga-button__icon-label">{{ loadingLabel() }}</span>
310
+ } @else {
311
+ <ga-icon [icon]="icon()" />
312
+ <span class="ga-button__icon-label"><ng-content /></span>
313
+ }
147
314
  `, host: {
148
315
  class: 'ga-button ga-button--icon-only',
149
316
  '[class.ga-button--primary]': `variant() === 'primary'`,
150
317
  '[class.ga-button--secondary]': `variant() === 'secondary'`,
151
318
  '[class.ga-button--ghost]': `variant() === 'ghost'`,
152
319
  '[class.ga-button--transparent]': `variant() === 'transparent'`,
320
+ '[attr.disabled]': 'disabled()',
321
+ '[attr.aria-busy]': 'isLoading() ? "true" : null',
153
322
  }, styles: [".ga-button__icon-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border-width:0!important}\n"] }]
154
323
  }] });
155
324
 
@@ -247,7 +416,7 @@ class GaAlertComponent {
247
416
  return `${progressValue}%`;
248
417
  });
249
418
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
250
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: GaAlertComponent, isStandalone: true, selector: "ga-alert", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, explicitIcon: { classPropertyName: "explicitIcon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, progressLabel: { classPropertyName: "progressLabel", publicName: "progressLabel", isSignal: true, isRequired: false, transformFunction: null }, progressLabelledBy: { classPropertyName: "progressLabelledBy", publicName: "progressLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismiss: "dismiss" }, host: { attributes: { "role": "alert" }, properties: { "class": "variantClass()" } }, queries: [{ propertyName: "title", first: true, predicate: GaAlertTitleComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@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 (hasProgress()) {\n <div\n role=\"progressbar\"\n class=\"ga-notification__progress\"\n [class.ga-notification__progress--indeterminate]=\"\n progress() === 'indeterminate'\n \"\n [id]=\"progressId\"\n [attr.aria-label]=\"progressLabel()\"\n [attr.aria-labelledby]=\"progressLabelledBy()\"\n [attr.aria-valuenow]=\"progressValue()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <div\n class=\"ga-notification__progress-bar\"\n [style.width]=\"progressBarWidth()\"\n ></div>\n </div>\n}\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", dependencies: [{ kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }, { kind: "ngmodule", type: GaButtonModule }, { kind: "component", type: GaIconButtonDirective, selector: "button[gaIconButton], a[gaIconButton]", inputs: ["gaIconButton", "gaIconButtonVariant"] }] });
419
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: GaAlertComponent, isStandalone: true, selector: "ga-alert", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, explicitIcon: { classPropertyName: "explicitIcon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, progressLabel: { classPropertyName: "progressLabel", publicName: "progressLabel", isSignal: true, isRequired: false, transformFunction: null }, progressLabelledBy: { classPropertyName: "progressLabelledBy", publicName: "progressLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismiss: "dismiss" }, host: { attributes: { "role": "alert" }, properties: { "class": "variantClass()" } }, queries: [{ propertyName: "title", first: true, predicate: GaAlertTitleComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@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 (hasProgress()) {\n <div\n role=\"progressbar\"\n class=\"ga-notification__progress\"\n [class.ga-notification__progress--indeterminate]=\"\n progress() === 'indeterminate'\n \"\n [id]=\"progressId\"\n [attr.aria-label]=\"progressLabel()\"\n [attr.aria-labelledby]=\"progressLabelledBy()\"\n [attr.aria-valuenow]=\"progressValue()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <div\n class=\"ga-notification__progress-bar\"\n [style.width]=\"progressBarWidth()\"\n ></div>\n </div>\n}\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", dependencies: [{ kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }, { kind: "ngmodule", type: GaButtonModule }, { kind: "component", type: GaIconButtonDirective, selector: "button[gaIconButton], a[gaIconButton]", inputs: ["gaIconButton", "gaIconButtonVariant", "gaIconButtonLoading", "gaIconButtonLoadingLabel", "disabled"] }] });
251
420
  }
252
421
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaAlertComponent, decorators: [{
253
422
  type: Component,
@@ -1871,7 +2040,7 @@ class GaModalHeaderComponent {
1871
2040
  >
1872
2041
  {{ i18n.dismissLabel }}
1873
2042
  </button>
1874
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: GaButtonModule }, { kind: "component", type: GaIconButtonDirective, selector: "button[gaIconButton], a[gaIconButton]", inputs: ["gaIconButton", "gaIconButtonVariant"] }, { kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }] });
2043
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: GaButtonModule }, { kind: "component", type: GaIconButtonDirective, selector: "button[gaIconButton], a[gaIconButton]", inputs: ["gaIconButton", "gaIconButtonVariant", "gaIconButtonLoading", "gaIconButtonLoadingLabel", "disabled"] }, { kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }] });
1875
2044
  }
1876
2045
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaModalHeaderComponent, decorators: [{
1877
2046
  type: Component,
@@ -2550,82 +2719,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
2550
2719
  }]
2551
2720
  }] });
2552
2721
 
2553
- class GaSpinnerComponent {
2554
- size = input(32, { transform: numberAttribute });
2555
- strokeWidth = computed(() => this.size() / 5);
2556
- center = computed(() => this.size() / 2);
2557
- radius = computed(() => (this.size() - this.strokeWidth()) / 2);
2558
- circumference = computed(() => 2 * Math.PI * this.radius());
2559
- arcCircumference = computed(() => this.circumference() * 0.25);
2560
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2561
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: GaSpinnerComponent, isStandalone: true, selector: "ga-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar", "tabindex": "-1" }, properties: { "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.mode": "'indeterminate'" }, classAttribute: "ga-spinner" }, ngImport: i0, template: `
2562
- <svg
2563
- [attr.width]="size()"
2564
- [attr.height]="size()"
2565
- [attr.viewBox]="'0 0 ' + size() + ' ' + size()"
2566
- xmlns="http://www.w3.org/2000/svg"
2567
- >
2568
- <circle
2569
- [attr.cx]="center()"
2570
- [attr.cy]="center()"
2571
- [attr.r]="radius()"
2572
- stroke="var(--ga-color-secondary)"
2573
- [attr.stroke-width]="strokeWidth()"
2574
- fill="none"
2575
- ></circle>
2576
- <circle
2577
- [attr.cx]="center()"
2578
- [attr.cy]="center()"
2579
- [attr.r]="radius()"
2580
- stroke="var(--ga-color-primary-70)"
2581
- [attr.stroke-width]="strokeWidth()"
2582
- stroke-linecap="round"
2583
- fill="none"
2584
- [attr.stroke-dasharray]="arcCircumference() + ' ' + circumference()"
2585
- style="transform-origin: center; animation: ga-spinner__animation 1100ms linear infinite;"
2586
- ></circle>
2587
- </svg>
2588
- `, isInline: true, styles: [".ga-spinner{display:inline-block}@keyframes ga-spinner__animation{0%{transform:rotate(0)}31.82%{transform:rotate(90deg)}63.64%{transform:rotate(180deg)}81.82%{transform:rotate(270deg)}to{transform:rotate(360deg)}}\n"], encapsulation: i0.ViewEncapsulation.None });
2589
- }
2590
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaSpinnerComponent, decorators: [{
2591
- type: Component,
2592
- args: [{ selector: 'ga-spinner', template: `
2593
- <svg
2594
- [attr.width]="size()"
2595
- [attr.height]="size()"
2596
- [attr.viewBox]="'0 0 ' + size() + ' ' + size()"
2597
- xmlns="http://www.w3.org/2000/svg"
2598
- >
2599
- <circle
2600
- [attr.cx]="center()"
2601
- [attr.cy]="center()"
2602
- [attr.r]="radius()"
2603
- stroke="var(--ga-color-secondary)"
2604
- [attr.stroke-width]="strokeWidth()"
2605
- fill="none"
2606
- ></circle>
2607
- <circle
2608
- [attr.cx]="center()"
2609
- [attr.cy]="center()"
2610
- [attr.r]="radius()"
2611
- stroke="var(--ga-color-primary-70)"
2612
- [attr.stroke-width]="strokeWidth()"
2613
- stroke-linecap="round"
2614
- fill="none"
2615
- [attr.stroke-dasharray]="arcCircumference() + ' ' + circumference()"
2616
- style="transform-origin: center; animation: ga-spinner__animation 1100ms linear infinite;"
2617
- ></circle>
2618
- </svg>
2619
- `, encapsulation: ViewEncapsulation.None, host: {
2620
- class: 'ga-spinner',
2621
- role: 'progressbar',
2622
- '[attr.aria-valuemin]': '0',
2623
- '[attr.aria-valuemax]': '100',
2624
- '[attr.mode]': "'indeterminate'",
2625
- tabindex: '-1',
2626
- }, styles: [".ga-spinner{display:inline-block}@keyframes ga-spinner__animation{0%{transform:rotate(0)}31.82%{transform:rotate(90deg)}63.64%{transform:rotate(180deg)}81.82%{transform:rotate(270deg)}to{transform:rotate(360deg)}}\n"] }]
2627
- }] });
2628
-
2629
2722
  class GaSpinnerModule {
2630
2723
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: GaSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2631
2724
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: GaSpinnerModule, imports: [GaSpinnerComponent], exports: [GaSpinnerComponent] });
@@ -2870,5 +2963,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
2870
2963
  * Generated bundle index. Do not edit.
2871
2964
  */
2872
2965
 
2873
- export { CHECKBOX_CONTROL_VALUE_ACCESSOR, DEFAULT_MODAL_OPTIONS, GA_ALERT_I18N_FACTORY, GA_BASE_FONT_SIZE, GA_CHECKBOX_REQUIRED_VALIDATOR, GA_FORM_CONTROL, GA_ICON_DEFAULT_SIZE, GA_MODAL_DATA, GA_MODAL_I18N_FACTORY, GA_SELECT_REQUIRED_VALIDATOR, 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, GaLinkDirective, GaLinkModule, GaMenuComponent, GaMenuItemComponent, GaMenuModule, GaMenuSeparatorComponent, GaMenuTitleComponent, GaMenuTriggerDirective, GaMenuTriggerIconComponent, GaModalActionsComponent, GaModalCloseDirective, GaModalComponent, GaModalContentComponent, GaModalDescriptionComponent, GaModalDescriptionDirective, GaModalHeaderComponent, GaModalI18n, GaModalI18nDefault, GaModalModule, GaModalOptions, GaModalRef, GaModalService, GaModalTitleDirective, GaOptgroupComponent, GaOptionComponent, GaRadioButtonComponent, GaRadioGroupComponent, GaRadioModule, GaSegmentedControlButtonDirective, GaSegmentedControlComponent, GaSegmentedControlIconButtonComponent, GaSegmentedControlModule, GaSegmentedControlTextButtonComponent, GaSelectComponent, GaSelectDropdownComponent, GaSelectDropdownSpinnerComponent, GaSelectModule, GaSelectRequiredValidator, GaSelectValueComponent, GaSpinnerComponent, GaSpinnerModule, GaTextAreaDirective, GaTextAreaModule, GaTooltipComponent, GaTooltipDirective, GaTooltipModule, RADIO_CONTROL_VALUE_ACCESSOR, provideGaAlertI18n, provideGaBaseFontSize, provideGaModalI18n, provideGaModalOptions };
2966
+ export { CHECKBOX_CONTROL_VALUE_ACCESSOR, DEFAULT_MODAL_OPTIONS, GA_ALERT_I18N_FACTORY, GA_BASE_FONT_SIZE, GA_BUTTON_I18N_FACTORY, GA_CHECKBOX_REQUIRED_VALIDATOR, GA_FORM_CONTROL, GA_ICON_DEFAULT_SIZE, GA_MODAL_DATA, GA_MODAL_I18N_FACTORY, GA_SELECT_REQUIRED_VALIDATOR, GA_TOOLTIP_DEFAULT_OFFSET, GaAlertComponent, GaAlertI18n, GaAlertI18nDefault, GaAlertModule, GaAlertTitleActionsComponent, GaAlertTitleComponent, GaBadgeComponent, GaBadgeModule, GaButtonDirective, GaButtonI18n, GaButtonI18nDefault, GaButtonModule, GaCardComponent, GaCardModule, GaCheckboxComponent, GaCheckboxModule, GaCheckboxRequiredValidator, GaFieldInfoComponent, GaFieldLabelComponent, GaFormControlDirective, GaFormFieldComponent, GaFormFieldModule, GaIconButtonDirective, GaIconComponent, GaIconModule, GaInputComponent, GaInputDirective, GaInputModule, GaLinkDirective, GaLinkModule, GaMenuComponent, GaMenuItemComponent, GaMenuModule, GaMenuSeparatorComponent, GaMenuTitleComponent, GaMenuTriggerDirective, GaMenuTriggerIconComponent, GaModalActionsComponent, GaModalCloseDirective, GaModalComponent, GaModalContentComponent, GaModalDescriptionComponent, GaModalDescriptionDirective, GaModalHeaderComponent, GaModalI18n, GaModalI18nDefault, GaModalModule, GaModalOptions, GaModalRef, GaModalService, GaModalTitleDirective, GaOptgroupComponent, GaOptionComponent, GaRadioButtonComponent, GaRadioGroupComponent, GaRadioModule, GaSegmentedControlButtonDirective, GaSegmentedControlComponent, GaSegmentedControlIconButtonComponent, GaSegmentedControlModule, GaSegmentedControlTextButtonComponent, GaSelectComponent, GaSelectDropdownComponent, GaSelectDropdownSpinnerComponent, GaSelectModule, GaSelectRequiredValidator, GaSelectValueComponent, GaSpinnerComponent, GaSpinnerModule, GaTextAreaDirective, GaTextAreaModule, GaTooltipComponent, GaTooltipDirective, GaTooltipModule, RADIO_CONTROL_VALUE_ACCESSOR, provideGaAlertI18n, provideGaBaseFontSize, provideGaButtonI18n, provideGaModalI18n, provideGaModalOptions };
2874
2967
  //# sourceMappingURL=vsn-ux-ngx-gaia.mjs.map