structra-ui 0.1.92 → 0.1.94

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.
@@ -228,44 +228,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
228
228
  args: [{ transform: booleanAttribute }]
229
229
  }] } });
230
230
 
231
- var ButtonVariant;
232
- (function (ButtonVariant) {
233
- ButtonVariant["Primary"] = "primary";
234
- ButtonVariant["Secondary"] = "secondary";
231
+ const ButtonVariant = {
232
+ Primary: 'primary',
233
+ Secondary: 'secondary',
235
234
  /** Texto/ícone sem caixa — navegação secundária, “link” com aparência de botão acessível. */
236
- ButtonVariant["Ghost"] = "ghost";
235
+ Ghost: 'ghost',
237
236
  /**
238
237
  * Hiperligação em estilo `<a>`: só texto sublinhado, fundo transparente; hover altera só a cor do texto.
239
238
  */
240
- ButtonVariant["Link"] = "link";
239
+ Link: 'link',
241
240
  /**
242
241
  * Ação destrutiva / apagar: tokens de erro do tema
243
242
  * (`--app-color-error*`), mesmo padrão em toda a lib.
244
243
  */
245
- ButtonVariant["Danger"] = "danger";
246
- })(ButtonVariant || (ButtonVariant = {}));
247
- var ButtonType;
248
- (function (ButtonType) {
249
- ButtonType["Button"] = "button";
250
- ButtonType["Submit"] = "submit";
251
- ButtonType["Reset"] = "reset";
252
- })(ButtonType || (ButtonType = {}));
244
+ Danger: 'danger',
245
+ /** Estado de alerta: amarelo escuro, com contraste adequado para texto/ícone. */
246
+ Warning: 'warning',
247
+ /** Estado positivo: verde de sucesso, no mesmo padrão de hover e active. */
248
+ Success: 'success',
249
+ };
250
+ const ButtonType = {
251
+ Button: 'button',
252
+ Submit: 'submit',
253
+ Reset: 'reset',
254
+ };
253
255
  /** Tamanhos do design system: `md` coincide com os valores que o botão já usava antes desta propriedade. */
254
- var ButtonSize;
255
- (function (ButtonSize) {
256
- ButtonSize["Sm"] = "sm";
257
- ButtonSize["Md"] = "md";
258
- ButtonSize["Lg"] = "lg";
256
+ const ButtonSize = {
257
+ Sm: 'sm',
258
+ Md: 'md',
259
+ Lg: 'lg',
259
260
  /** Maior que `lg` — ênfase / touch targets amplos (CTAs hero). */
260
- ButtonSize["Xl"] = "xl";
261
- })(ButtonSize || (ButtonSize = {}));
261
+ Xl: 'xl',
262
+ /** Escala extra para CTAs de maior destaque. */
263
+ Xxl: 'xxl',
264
+ };
265
+ /** Radius semântico do design system (sem valores numéricos livres no template). */
266
+ const ButtonRadius = {
267
+ None: 'none',
268
+ Sm: 'sm',
269
+ Md: 'md',
270
+ Lg: 'lg',
271
+ Pill: 'pill',
272
+ };
262
273
  /**
263
274
  * Base do botão; **não** exposta no barrel público `buttons`. Use `ButtonComponent` (`app-button`).
264
275
  */
265
276
  class BaseButtonComponent {
266
277
  constructor() {
267
278
  /** `submit` envia o `<form>` ancestral; use `button` para ações sem submit. */
268
- this.type = ButtonType.Button;
279
+ this.type = 'button';
269
280
  this.disabled = false;
270
281
  /**
271
282
  * Não interage (como `disabled`), mas com aparência em cinza (tema somente leitura),
@@ -278,11 +289,13 @@ class BaseButtonComponent {
278
289
  */
279
290
  this.fullWidth = true;
280
291
  /** Escala tipográfica e de paddings/`min-height` do design system. `md` = aparência legada do botão. */
281
- this.size = ButtonSize.Md;
292
+ this.size = 'md';
293
+ /** Arredondamento semântico do botão (design system). */
294
+ this.radius = 'md';
282
295
  /** Placeholder de carregamento (skeleton no lugar do rótulo). */
283
296
  this.loading = false;
284
297
  /** Estilo visual base; pode ser estendido no SCSS do projeto. */
285
- this.variant = ButtonVariant.Primary;
298
+ this.variant = 'primary';
286
299
  }
287
300
  /** Alias de {@link variant} (nome comum em design systems). */
288
301
  set appearance(value) {
@@ -290,7 +303,9 @@ class BaseButtonComponent {
290
303
  value === ButtonVariant.Secondary ||
291
304
  value === ButtonVariant.Ghost ||
292
305
  value === ButtonVariant.Link ||
293
- value === ButtonVariant.Danger) {
306
+ value === ButtonVariant.Danger ||
307
+ value === ButtonVariant.Warning ||
308
+ value === ButtonVariant.Success) {
294
309
  this.variant = value;
295
310
  }
296
311
  }
@@ -299,6 +314,7 @@ class BaseButtonComponent {
299
314
  'base-button',
300
315
  `base-button--${this.variant}`,
301
316
  `base-button--size-${this.size}`,
317
+ `base-button--radius-${this.radius}`,
302
318
  ];
303
319
  if (this.disabled) {
304
320
  parts.push('base-button--disabled');
@@ -319,11 +335,11 @@ class BaseButtonComponent {
319
335
  this.nativeBtn?.nativeElement?.focus(options);
320
336
  }
321
337
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: BaseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: BaseButtonComponent, isStandalone: true, selector: "app-base-button", inputs: { type: "type", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], fullWidth: ["fullWidth", "fullWidth", booleanAttribute], size: "size", loading: ["loading", "loading", booleanAttribute], variant: "variant", appearance: "appearance" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "nativeBtn", first: true, predicate: ["nativeBtn"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
338
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: BaseButtonComponent, isStandalone: true, selector: "app-base-button", inputs: { type: "type", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], fullWidth: ["fullWidth", "fullWidth", booleanAttribute], size: "size", radius: "radius", loading: ["loading", "loading", booleanAttribute], variant: "variant", appearance: "appearance" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "nativeBtn", first: true, predicate: ["nativeBtn"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--size-xxl){--bb-fs: 1.125rem;--bb-min-h: 3.625rem;--bb-pad-y: .875rem;--bb-pad-x: 2rem;--bb-gap: .875rem;--bb-min-w: 6.5rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--ghost.base-button--size-xxl){--bb-min-h: 3.125rem;--bb-pad-y: .58rem;--bb-pad-x: .82rem;--bb-fs: 1.16rem;--bb-gap: .62rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}:host(.base-button--link.base-button--size-xxl){--bb-fs: 1.125rem;--bb-pad-y: .16rem;--bb-gap: .5rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--radius-none) .base-button__native{border-radius:var(--radius-none, 0px)}:host(.base-button--radius-sm) .base-button__native{border-radius:var(--radius-sm, 4px)}:host(.base-button--radius-md) .base-button__native{border-radius:var(--ui-field-float-border-radius, 14px)}:host(.base-button--radius-lg) .base-button__native{border-radius:var(--radius-lg, 12px)}:host(.base-button--radius-pill) .base-button__native{border-radius:var(--radius-pill, 999px)}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--warning) .base-button__native{color:var(--ui-button-warning-text, #111827);background:var(--ui-button-warning-bg);border-color:var(--ui-button-warning-border)}:host(.base-button--warning) .base-button__native:hover:not(:disabled){background:var(--ui-button-warning-bg-hover);border-color:var(--ui-button-warning-border-hover)}:host(.base-button--warning) .base-button__native:active:not(:disabled){background:var(--ui-button-warning-bg-active);border-color:var(--ui-button-warning-border-active)}:host(.base-button--warning) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-warning-focus-ring, rgba(202, 138, 4, .4))}:host(.base-button--success) .base-button__native{color:var(--ui-button-success-text, #ffffff);background:var(--ui-button-success-bg);border-color:var(--ui-button-success-border)}:host(.base-button--success) .base-button__native:hover:not(:disabled){background:var(--ui-button-success-bg-hover);border-color:var(--ui-button-success-border-hover)}:host(.base-button--success) .base-button__native:active:not(:disabled){background:var(--ui-button-success-bg-active);border-color:var(--ui-button-success-border-active)}:host(.base-button--success) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-success-focus-ring, rgba(21, 128, 61, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}:host(.base-button--warning.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-warning, #ca8a04) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-warning, #ca8a04) 88%,#ffffff)}:host(.base-button--success.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-success, #15803d) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-success, #15803d) 88%,#ffffff)}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
323
339
  }
324
340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: BaseButtonComponent, decorators: [{
325
341
  type: Component,
326
- args: [{ selector: 'app-base-button', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}\n"] }]
342
+ args: [{ selector: 'app-base-button', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--size-xxl){--bb-fs: 1.125rem;--bb-min-h: 3.625rem;--bb-pad-y: .875rem;--bb-pad-x: 2rem;--bb-gap: .875rem;--bb-min-w: 6.5rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--ghost.base-button--size-xxl){--bb-min-h: 3.125rem;--bb-pad-y: .58rem;--bb-pad-x: .82rem;--bb-fs: 1.16rem;--bb-gap: .62rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}:host(.base-button--link.base-button--size-xxl){--bb-fs: 1.125rem;--bb-pad-y: .16rem;--bb-gap: .5rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--radius-none) .base-button__native{border-radius:var(--radius-none, 0px)}:host(.base-button--radius-sm) .base-button__native{border-radius:var(--radius-sm, 4px)}:host(.base-button--radius-md) .base-button__native{border-radius:var(--ui-field-float-border-radius, 14px)}:host(.base-button--radius-lg) .base-button__native{border-radius:var(--radius-lg, 12px)}:host(.base-button--radius-pill) .base-button__native{border-radius:var(--radius-pill, 999px)}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--warning) .base-button__native{color:var(--ui-button-warning-text, #111827);background:var(--ui-button-warning-bg);border-color:var(--ui-button-warning-border)}:host(.base-button--warning) .base-button__native:hover:not(:disabled){background:var(--ui-button-warning-bg-hover);border-color:var(--ui-button-warning-border-hover)}:host(.base-button--warning) .base-button__native:active:not(:disabled){background:var(--ui-button-warning-bg-active);border-color:var(--ui-button-warning-border-active)}:host(.base-button--warning) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-warning-focus-ring, rgba(202, 138, 4, .4))}:host(.base-button--success) .base-button__native{color:var(--ui-button-success-text, #ffffff);background:var(--ui-button-success-bg);border-color:var(--ui-button-success-border)}:host(.base-button--success) .base-button__native:hover:not(:disabled){background:var(--ui-button-success-bg-hover);border-color:var(--ui-button-success-border-hover)}:host(.base-button--success) .base-button__native:active:not(:disabled){background:var(--ui-button-success-bg-active);border-color:var(--ui-button-success-border-active)}:host(.base-button--success) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-success-focus-ring, rgba(21, 128, 61, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}:host(.base-button--warning.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-warning, #ca8a04) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-warning, #ca8a04) 88%,#ffffff)}:host(.base-button--success.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-success, #15803d) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-success, #15803d) 88%,#ffffff)}\n"] }]
327
343
  }], propDecorators: { nativeBtn: [{
328
344
  type: ViewChild,
329
345
  args: ['nativeBtn', { read: ElementRef }]
@@ -340,6 +356,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
340
356
  args: [{ transform: booleanAttribute }]
341
357
  }], size: [{
342
358
  type: Input
359
+ }], radius: [{
360
+ type: Input
343
361
  }], loading: [{
344
362
  type: Input,
345
363
  args: [{ transform: booleanAttribute }]
@@ -359,11 +377,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
359
377
  */
360
378
  class ButtonComponent extends BaseButtonComponent {
361
379
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
362
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ButtonComponent, isStandalone: true, selector: "app-button", usesInheritance: true, ngImport: i0, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
380
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ButtonComponent, isStandalone: true, selector: "app-button", usesInheritance: true, ngImport: i0, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--size-xxl){--bb-fs: 1.125rem;--bb-min-h: 3.625rem;--bb-pad-y: .875rem;--bb-pad-x: 2rem;--bb-gap: .875rem;--bb-min-w: 6.5rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--ghost.base-button--size-xxl){--bb-min-h: 3.125rem;--bb-pad-y: .58rem;--bb-pad-x: .82rem;--bb-fs: 1.16rem;--bb-gap: .62rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}:host(.base-button--link.base-button--size-xxl){--bb-fs: 1.125rem;--bb-pad-y: .16rem;--bb-gap: .5rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--radius-none) .base-button__native{border-radius:var(--radius-none, 0px)}:host(.base-button--radius-sm) .base-button__native{border-radius:var(--radius-sm, 4px)}:host(.base-button--radius-md) .base-button__native{border-radius:var(--ui-field-float-border-radius, 14px)}:host(.base-button--radius-lg) .base-button__native{border-radius:var(--radius-lg, 12px)}:host(.base-button--radius-pill) .base-button__native{border-radius:var(--radius-pill, 999px)}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--warning) .base-button__native{color:var(--ui-button-warning-text, #111827);background:var(--ui-button-warning-bg);border-color:var(--ui-button-warning-border)}:host(.base-button--warning) .base-button__native:hover:not(:disabled){background:var(--ui-button-warning-bg-hover);border-color:var(--ui-button-warning-border-hover)}:host(.base-button--warning) .base-button__native:active:not(:disabled){background:var(--ui-button-warning-bg-active);border-color:var(--ui-button-warning-border-active)}:host(.base-button--warning) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-warning-focus-ring, rgba(202, 138, 4, .4))}:host(.base-button--success) .base-button__native{color:var(--ui-button-success-text, #ffffff);background:var(--ui-button-success-bg);border-color:var(--ui-button-success-border)}:host(.base-button--success) .base-button__native:hover:not(:disabled){background:var(--ui-button-success-bg-hover);border-color:var(--ui-button-success-border-hover)}:host(.base-button--success) .base-button__native:active:not(:disabled){background:var(--ui-button-success-bg-active);border-color:var(--ui-button-success-border-active)}:host(.base-button--success) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-success-focus-ring, rgba(21, 128, 61, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}:host(.base-button--warning.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-warning, #ca8a04) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-warning, #ca8a04) 88%,#ffffff)}:host(.base-button--success.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-success, #15803d) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-success, #15803d) 88%,#ffffff)}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
363
381
  }
364
382
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ButtonComponent, decorators: [{
365
383
  type: Component,
366
- args: [{ selector: 'app-button', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}\n"] }]
384
+ args: [{ selector: 'app-button', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!loading) {\r\n<button\r\n #nativeBtn\r\n class=\"base-button__native\"\r\n [attr.type]=\"type\"\r\n [disabled]=\"disabled || readonly\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n>\r\n <ng-content />\r\n</button>\r\n} @else {\r\n<div class=\"base-button__native base-button__native--skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\"\r\n aria-label=\"A carregar\">\r\n <app-skeleton-block width=\"40%\" height=\"0.7rem\" radius=\"8px\" />\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:middle}:host(.base-button--size-sm){--bb-fs: .8125rem;--bb-min-h: 2rem;--bb-pad-y: .375rem;--bb-pad-x: .875rem;--bb-gap: .375rem;--bb-min-w: 4rem}:host(.base-button--size-md){--bb-fs: .9375rem;--bb-min-h: 2.5rem;--bb-pad-y: .5rem;--bb-pad-x: 1.25rem;--bb-gap: .5rem;--bb-min-w: 5rem}:host(.base-button--size-lg){--bb-fs: 1rem;--bb-min-h: 2.875rem;--bb-pad-y: .625rem;--bb-pad-x: 1.5rem;--bb-gap: .625rem;--bb-min-w: 5.5rem}:host(.base-button--size-xl){--bb-fs: 1.0625rem;--bb-min-h: 3.25rem;--bb-pad-y: .75rem;--bb-pad-x: 1.75rem;--bb-gap: .75rem;--bb-min-w: 6rem}:host(.base-button--size-xxl){--bb-fs: 1.125rem;--bb-min-h: 3.625rem;--bb-pad-y: .875rem;--bb-pad-x: 2rem;--bb-gap: .875rem;--bb-min-w: 6.5rem}:host(.base-button--ghost){--bb-min-h: 2.25rem;--bb-pad-y: .35rem;--bb-pad-x: .5rem;--bb-fs: .95rem;--bb-gap: .45rem;--bb-min-w: 0}:host(.base-button--ghost.base-button--size-sm){--bb-min-h: 2rem;--bb-pad-y: .28rem;--bb-pad-x: .42rem;--bb-fs: .875rem;--bb-gap: .35rem}:host(.base-button--ghost.base-button--size-lg){--bb-min-h: 2.5rem;--bb-pad-y: .42rem;--bb-pad-x: .62rem;--bb-fs: 1.05rem;--bb-gap: .5rem}:host(.base-button--ghost.base-button--size-xl){--bb-min-h: 2.875rem;--bb-pad-y: .5rem;--bb-pad-x: .72rem;--bb-fs: 1.1rem;--bb-gap: .55rem}:host(.base-button--ghost.base-button--size-xxl){--bb-min-h: 3.125rem;--bb-pad-y: .58rem;--bb-pad-x: .82rem;--bb-fs: 1.16rem;--bb-gap: .62rem}:host(.base-button--link){--bb-min-h: 0;--bb-min-w: 0;--bb-gap: .35rem;--bb-pad-x: 0}:host(.base-button--link.base-button--size-sm){--bb-fs: .8125rem;--bb-pad-y: .05rem;--bb-gap: .3rem}:host(.base-button--link.base-button--size-md){--bb-fs: .9375rem}:host(.base-button--link.base-button--size-lg){--bb-fs: 1rem;--bb-pad-y: .12rem;--bb-gap: .4rem}:host(.base-button--link.base-button--size-xl){--bb-fs: 1.0625rem;--bb-pad-y: .14rem;--bb-gap: .45rem}:host(.base-button--link.base-button--size-xxl){--bb-fs: 1.125rem;--bb-pad-y: .16rem;--bb-gap: .5rem}.base-button__native{-webkit-appearance:none;appearance:none;display:flex;width:auto;min-width:var(--bb-min-w, 5rem);align-items:center;justify-content:center;text-align:center;gap:var(--bb-gap, .5rem);min-height:var(--bb-min-h, 2.5rem);padding:var(--bb-pad-y, .5rem) var(--bb-pad-x, 1.25rem);margin:0;border:1px solid transparent;border-radius:var(--ui-field-float-border-radius, 14px);font:inherit;font-size:var(--bb-fs, .9375rem);font-weight:600;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .15s ease,opacity .15s ease,filter .12s ease}:host(.base-button--radius-none) .base-button__native{border-radius:var(--radius-none, 0px)}:host(.base-button--radius-sm) .base-button__native{border-radius:var(--radius-sm, 4px)}:host(.base-button--radius-md) .base-button__native{border-radius:var(--ui-field-float-border-radius, 14px)}:host(.base-button--radius-lg) .base-button__native{border-radius:var(--radius-lg, 12px)}:host(.base-button--radius-pill) .base-button__native{border-radius:var(--radius-pill, 999px)}:host(.base-button--full-width){display:block;width:auto;min-width:0;max-width:100%;box-sizing:border-box}:host(.base-button--full-width) .base-button__native{width:100%;min-width:0}.base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .35))}:host(.base-button--primary) .base-button__native{color:var(--app-color-primary-contrast, #ffffff);background:var(--ui-button-primary-bg, var(--ui-field-float-border-focus, #2b7fd9));border-color:var(--ui-button-primary-border, var(--ui-field-float-border-focus, #2b7fd9))}:host(.base-button--primary) .base-button__native:hover:not(:disabled){background:var(--ui-button-primary-bg-hover);border-color:var(--ui-button-primary-border-hover)}:host(.base-button--primary) .base-button__native:active:not(:disabled){background:var(--ui-button-primary-bg-active);border-color:var(--ui-button-primary-border-active)}:host(.base-button--secondary) .base-button__native{color:var(--ui-field-float-label-top-color, #4a6d8c);background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--secondary) .base-button__native:hover:not(:disabled){background:var(--app-color-button-secondary-hover-bg, #e8f0fa)}:host(.base-button--secondary) .base-button__native:active:not(:disabled){background:var(--ui-button-secondary-bg-active)}:host(.base-button--ghost) .base-button__native{color:var(--app-color-text-primary, #1a2f45);background:transparent;border-color:transparent;border-radius:8px;font-weight:600;justify-content:flex-start}:host(.base-button--ghost) .base-button__native:hover:not(:disabled){color:var(--app-color-nav-link);background:color-mix(in srgb,var(--app-color-primary) 6%,transparent)}:host(.base-button--ghost) .base-button__native:active:not(:disabled){background:var(--ui-button-ghost-bg-active)}:host(.base-button--link) .base-button__native{color:var(--app-color-primary, #2b7fd9);background:transparent;border:none;border-radius:0;padding:var(--bb-pad-y, .1rem) var(--bb-pad-x, 0);min-height:0;font-family:inherit;font-weight:500;line-height:inherit;justify-content:flex-start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;box-shadow:none;transition:color .15s ease,opacity .15s ease}:host(.base-button--link) .base-button__native:hover:not(:disabled){color:var(--app-color-secondary, #1a2f45);background:transparent;border-color:transparent;filter:none}:host(.base-button--link) .base-button__native:active:not(:disabled){color:var(--ui-button-link-text-active)}:host(.base-button--link) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-field-float-focus-ring, rgba(43, 127, 217, .4));border-radius:2px}:host(.base-button--danger) .base-button__native{color:var(--app-color-error-contrast, #fff);background:var(--ui-button-danger-bg);border-color:var(--ui-button-danger-border)}:host(.base-button--danger) .base-button__native:hover:not(:disabled){background:var(--ui-button-danger-bg-hover);border-color:var(--ui-button-danger-border-hover)}:host(.base-button--danger) .base-button__native:active:not(:disabled){background:var(--ui-button-danger-bg-active);border-color:var(--ui-button-danger-border-active)}:host(.base-button--danger) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}:host(.base-button--warning) .base-button__native{color:var(--ui-button-warning-text, #111827);background:var(--ui-button-warning-bg);border-color:var(--ui-button-warning-border)}:host(.base-button--warning) .base-button__native:hover:not(:disabled){background:var(--ui-button-warning-bg-hover);border-color:var(--ui-button-warning-border-hover)}:host(.base-button--warning) .base-button__native:active:not(:disabled){background:var(--ui-button-warning-bg-active);border-color:var(--ui-button-warning-border-active)}:host(.base-button--warning) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-warning-focus-ring, rgba(202, 138, 4, .4))}:host(.base-button--success) .base-button__native{color:var(--ui-button-success-text, #ffffff);background:var(--ui-button-success-bg);border-color:var(--ui-button-success-border)}:host(.base-button--success) .base-button__native:hover:not(:disabled){background:var(--ui-button-success-bg-hover);border-color:var(--ui-button-success-border-hover)}:host(.base-button--success) .base-button__native:active:not(:disabled){background:var(--ui-button-success-bg-active);border-color:var(--ui-button-success-border-active)}:host(.base-button--success) .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-button-success-focus-ring, rgba(21, 128, 61, .35))}:host(.base-button--disabled:not(.base-button--readonly)) .base-button__native,.base-button__native:disabled:not([aria-readonly=true]){cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity, .65)}:host(.base-button--readonly) .base-button__native{cursor:default;opacity:1;color:var(--ui-field-readonly-button-text, #37474f);background:var(--ui-field-readonly-button-bg, #cfd8dc);border-color:var(--ui-field-readonly-button-border, #90a4ae)}:host(.base-button--readonly) .base-button__native:hover:not(:disabled){filter:brightness(.97)}:host(.base-button--readonly) .base-button__native:focus-visible{box-shadow:0 0 0 3px var(--ui-field-readonly-button-focus-ring, rgba(96, 125, 139, .35))}:host(.base-button--readonly.base-button--link) .base-button__native{background:transparent;border:none;text-decoration:underline}.base-button__native--skeleton{pointer-events:none;cursor:default}:host(.base-button--primary.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff);border-color:color-mix(in srgb,var(--ui-field-float-border-focus, #2b7fd9) 82%,#ffffff)}:host(.base-button--secondary.base-button--loading) .base-button__native--skeleton{background:var(--ui-field-float-bg, #f3f7fb);border-color:var(--ui-field-float-border, #b6cce5)}:host(.base-button--ghost.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-text-primary, #1a2f45) 8%,transparent);border-color:transparent}:host(.base-button--link.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-primary, #2b7fd9) 12%,transparent);border:none;min-height:calc(var(--bb-fs, .9375rem) * 1.35);border-radius:2px}:host(.base-button--danger.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-error, #b91c1c) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 88%,#ffffff)}:host(.base-button--warning.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-warning, #ca8a04) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-warning, #ca8a04) 88%,#ffffff)}:host(.base-button--success.base-button--loading) .base-button__native--skeleton{color:transparent;background:color-mix(in srgb,var(--app-color-success, #15803d) 82%,#ffffff);border-color:color-mix(in srgb,var(--app-color-success, #15803d) 88%,#ffffff)}\n"] }]
367
385
  }] });
368
386
 
369
387
  let fieldControlAutoId = 0;
@@ -5350,8 +5368,6 @@ class ConfirmDialogComponent {
5350
5368
  constructor() {
5351
5369
  this.ref = inject((DialogRef));
5352
5370
  this.data = inject(DIALOG_DATA);
5353
- this.ButtonType = ButtonType;
5354
- this.ButtonVariant = ButtonVariant;
5355
5371
  this.titleId = `app-confirm-dlg-title-${++ConfirmDialogComponent.seq}`;
5356
5372
  this.descId = `app-confirm-dlg-desc-${ConfirmDialogComponent.seq}`;
5357
5373
  }
@@ -5368,11 +5384,11 @@ class ConfirmDialogComponent {
5368
5384
  this.ref.close(false);
5369
5385
  }
5370
5386
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConfirmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5371
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", viewQueries: [{ propertyName: "cancelBtn", first: true, predicate: ["cancelBtn"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"confirm-dialog\"\r\n role=\"alertdialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"descId\"\r\n>\r\n <header class=\"confirm-dialog__header\">\r\n <h2 class=\"confirm-dialog__title\" [id]=\"titleId\">{{ data.title }}</h2>\r\n </header>\r\n\r\n <div class=\"confirm-dialog__body\">\r\n <p class=\"confirm-dialog__message\" [id]=\"descId\">{{ data.message }}</p>\r\n </div>\r\n\r\n <footer class=\"confirm-dialog__footer\">\r\n <app-button\r\n #cancelBtn\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"ButtonVariant.Secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ data.cancelLabel ?? 'Cancelar' }}\r\n </app-button>\r\n <app-button\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"\r\n data.variant === 'danger'\r\n ? ButtonVariant.Danger\r\n : ButtonVariant.Primary\r\n \"\r\n [fullWidth]=\"false\"\r\n (click)=\"onConfirm()\"\r\n >\r\n {{ data.confirmLabel ?? 'Confirmar' }}\r\n </app-button>\r\n </footer>\r\n</div>\r\n", styles: [".confirm-dialog{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;max-width:100%;min-height:0;overflow:hidden}.confirm-dialog__header{flex:0 0 auto;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.confirm-dialog__title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.confirm-dialog__body{flex:1 1 auto;min-height:0;padding:1rem;overflow:auto}.confirm-dialog__message{margin:0;font-size:.9rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3)}.confirm-dialog__footer{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "app-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5387
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", viewQueries: [{ propertyName: "cancelBtn", first: true, predicate: ["cancelBtn"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"confirm-dialog\"\r\n role=\"alertdialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"descId\"\r\n>\r\n <header class=\"confirm-dialog__header\">\r\n <h2 class=\"confirm-dialog__title\" [id]=\"titleId\">{{ data.title }}</h2>\r\n </header>\r\n\r\n <div class=\"confirm-dialog__body\">\r\n <p class=\"confirm-dialog__message\" [id]=\"descId\">{{ data.message }}</p>\r\n </div>\r\n\r\n <footer class=\"confirm-dialog__footer\">\r\n <app-button\r\n #cancelBtn\r\n type=\"button\"\r\n variant=\"secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ data.cancelLabel ?? 'Cancelar' }}\r\n </app-button>\r\n <app-button\r\n type=\"button\"\r\n [variant]=\"data.variant === 'danger' ? 'danger' : 'primary'\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onConfirm()\"\r\n >\r\n {{ data.confirmLabel ?? 'Confirmar' }}\r\n </app-button>\r\n </footer>\r\n</div>\r\n", styles: [".confirm-dialog{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;max-width:100%;min-height:0;overflow:hidden}.confirm-dialog__header{flex:0 0 auto;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.confirm-dialog__title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.confirm-dialog__body{flex:1 1 auto;min-height:0;padding:1rem;overflow:auto}.confirm-dialog__message{margin:0;font-size:.9rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3)}.confirm-dialog__footer{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "app-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5372
5388
  }
5373
5389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
5374
5390
  type: Component,
5375
- args: [{ selector: 'app-confirm-dialog', imports: [ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"confirm-dialog\"\r\n role=\"alertdialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"descId\"\r\n>\r\n <header class=\"confirm-dialog__header\">\r\n <h2 class=\"confirm-dialog__title\" [id]=\"titleId\">{{ data.title }}</h2>\r\n </header>\r\n\r\n <div class=\"confirm-dialog__body\">\r\n <p class=\"confirm-dialog__message\" [id]=\"descId\">{{ data.message }}</p>\r\n </div>\r\n\r\n <footer class=\"confirm-dialog__footer\">\r\n <app-button\r\n #cancelBtn\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"ButtonVariant.Secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ data.cancelLabel ?? 'Cancelar' }}\r\n </app-button>\r\n <app-button\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"\r\n data.variant === 'danger'\r\n ? ButtonVariant.Danger\r\n : ButtonVariant.Primary\r\n \"\r\n [fullWidth]=\"false\"\r\n (click)=\"onConfirm()\"\r\n >\r\n {{ data.confirmLabel ?? 'Confirmar' }}\r\n </app-button>\r\n </footer>\r\n</div>\r\n", styles: [".confirm-dialog{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;max-width:100%;min-height:0;overflow:hidden}.confirm-dialog__header{flex:0 0 auto;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.confirm-dialog__title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.confirm-dialog__body{flex:1 1 auto;min-height:0;padding:1rem;overflow:auto}.confirm-dialog__message{margin:0;font-size:.9rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3)}.confirm-dialog__footer{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}\n"] }]
5391
+ args: [{ selector: 'app-confirm-dialog', imports: [ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"confirm-dialog\"\r\n role=\"alertdialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"descId\"\r\n>\r\n <header class=\"confirm-dialog__header\">\r\n <h2 class=\"confirm-dialog__title\" [id]=\"titleId\">{{ data.title }}</h2>\r\n </header>\r\n\r\n <div class=\"confirm-dialog__body\">\r\n <p class=\"confirm-dialog__message\" [id]=\"descId\">{{ data.message }}</p>\r\n </div>\r\n\r\n <footer class=\"confirm-dialog__footer\">\r\n <app-button\r\n #cancelBtn\r\n type=\"button\"\r\n variant=\"secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ data.cancelLabel ?? 'Cancelar' }}\r\n </app-button>\r\n <app-button\r\n type=\"button\"\r\n [variant]=\"data.variant === 'danger' ? 'danger' : 'primary'\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onConfirm()\"\r\n >\r\n {{ data.confirmLabel ?? 'Confirmar' }}\r\n </app-button>\r\n </footer>\r\n</div>\r\n", styles: [".confirm-dialog{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;max-width:100%;min-height:0;overflow:hidden}.confirm-dialog__header{flex:0 0 auto;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.confirm-dialog__title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.confirm-dialog__body{flex:1 1 auto;min-height:0;padding:1rem;overflow:auto}.confirm-dialog__message{margin:0;font-size:.9rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3)}.confirm-dialog__footer{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}\n"] }]
5376
5392
  }], propDecorators: { cancelBtn: [{
5377
5393
  type: ViewChild,
5378
5394
  args: ['cancelBtn']
@@ -6274,8 +6290,6 @@ class ImagePreviewPanelComponent {
6274
6290
  this.objectFit = 'cover';
6275
6291
  this.remove = new EventEmitter();
6276
6292
  this.change = new EventEmitter();
6277
- this.ButtonType = ButtonType;
6278
- this.ButtonVariant = ButtonVariant;
6279
6293
  /** Mensagem reutilizada: falha de carga, tipo não suportado, etc. */
6280
6294
  this.previewUnavailableMessage = FILE_PREVIEW_UNAVAILABLE_MESSAGE;
6281
6295
  /** `blob:` a revogar ao trocar ou destruir. */
@@ -6283,6 +6297,8 @@ class ImagePreviewPanelComponent {
6283
6297
  /** Só `image` local ou `imageUrl` remota. */
6284
6298
  this.displaySrc = null;
6285
6299
  this.imageLoadError = false;
6300
+ /** Remote URL só entra como "imagem visível" após evento de load. */
6301
+ this.imageLoaded = false;
6286
6302
  /** PDF a partir de `File` (URL sanitizada). */
6287
6303
  this.safePdfUrl = null;
6288
6304
  this.pdfLoadError = false;
@@ -6293,6 +6309,7 @@ class ImagePreviewPanelComponent {
6293
6309
  if (c['file'] || c['imageUrl']) {
6294
6310
  this.revokeFileObjectUrl();
6295
6311
  this.imageLoadError = false;
6312
+ this.imageLoaded = false;
6296
6313
  this.pdfLoadError = false;
6297
6314
  this.fileKind = 'remote';
6298
6315
  this.displaySrc = null;
@@ -6305,10 +6322,12 @@ class ImagePreviewPanelComponent {
6305
6322
  }
6306
6323
  onImgError() {
6307
6324
  this.imageLoadError = true;
6325
+ this.imageLoaded = false;
6308
6326
  this.cdr.markForCheck();
6309
6327
  }
6310
6328
  onImgLoad() {
6311
6329
  this.imageLoadError = false;
6330
+ this.imageLoaded = true;
6312
6331
  this.cdr.markForCheck();
6313
6332
  }
6314
6333
  onPdfFrameError() {
@@ -6322,10 +6341,13 @@ class ImagePreviewPanelComponent {
6322
6341
  this.remove.emit();
6323
6342
  }
6324
6343
  get showImage() {
6325
- return (!this.loading &&
6326
- (this.fileKind === 'image' || this.fileKind === 'remote') &&
6327
- !!this.displaySrc &&
6328
- !this.imageLoadError);
6344
+ if (this.loading || !this.displaySrc || this.imageLoadError) {
6345
+ return false;
6346
+ }
6347
+ if (this.fileKind === 'remote') {
6348
+ return this.imageLoaded;
6349
+ }
6350
+ return (this.fileKind === 'image');
6329
6351
  }
6330
6352
  get showPdf() {
6331
6353
  return (!this.loading &&
@@ -6395,11 +6417,11 @@ class ImagePreviewPanelComponent {
6395
6417
  }
6396
6418
  }
6397
6419
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ImagePreviewPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6398
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ImagePreviewPanelComponent, isStandalone: true, selector: "app-image-preview-panel", inputs: { title: "title", subtitle: "subtitle", imageUrl: "imageUrl", file: "file", emptyText: "emptyText", loading: ["loading", "loading", booleanAttribute], rounded: ["rounded", "rounded", booleanAttribute], showImageActions: ["showImageActions", "showImageActions", booleanAttribute], objectFit: "objectFit" }, outputs: { remove: "remove", change: "change" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"image-preview-panel\"\r\n [class.image-preview-panel--rounded]=\"rounded\"\r\n [class.image-preview-panel--loading]=\"loading\"\r\n>\r\n @if (title && title.length > 0) {\r\n <h3 class=\"image-preview-panel__title\">{{ title }}</h3>\r\n }\r\n @if (subtitle && subtitle.length > 0) {\r\n <p class=\"image-preview-panel__subtitle\">{{ subtitle }}</p>\r\n }\r\n\r\n <div\r\n class=\"image-preview-panel__frame\"\r\n [class.image-preview-panel__frame--rounded]=\"rounded\"\r\n >\r\n @if (loading) {\r\n <div\r\n class=\"image-preview-panel__skeleton\"\r\n role=\"status\"\r\n aria-label=\"Carregando pr\u00E9-visualiza\u00E7\u00E3o\"\r\n >\r\n <app-skeleton-block\r\n class=\"image-preview-panel__skeleton-poster\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n radius=\"0\"\r\n />\r\n <div class=\"image-preview-panel__skeleton-lines\">\r\n <app-skeleton-block width=\"72%\" height=\"0.6rem\" radius=\"6px\" />\r\n <app-skeleton-block width=\"48%\" height=\"0.55rem\" radius=\"6px\" />\r\n </div>\r\n </div>\r\n } @else if (showEmpty) {\r\n <div class=\"image-preview-panel__empty\" role=\"img\" [attr.aria-label]=\"emptyText\">\r\n <i class=\"fa-regular fa-image image-preview-panel__empty-icon\" aria-hidden=\"true\"></i>\r\n <span class=\"image-preview-panel__empty-text\">{{ emptyText }}</span>\r\n </div>\r\n } @else {\r\n @if (showPreviewFallback) {\r\n <div\r\n class=\"image-preview-panel__preview-fallback\"\r\n role=\"status\"\r\n [attr.aria-label]=\"previewUnavailableMessage\"\r\n >\r\n <i\r\n class=\"fa-solid fa-triangle-exclamation image-preview-panel__preview-fallback-icon\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <span class=\"image-preview-panel__preview-fallback-text\">{{ previewUnavailableMessage }}</span>\r\n </div>\r\n } @else if (showPdf) {\r\n <iframe\r\n class=\"image-preview-panel__pdf\"\r\n [src]=\"safePdfUrl\"\r\n title=\"Pr\u00E9-visualiza\u00E7\u00E3o do PDF\"\r\n (error)=\"onPdfFrameError()\"\r\n ></iframe>\r\n } @else if (showImage) {\r\n <img\r\n class=\"image-preview-panel__img\"\r\n [src]=\"displaySrc!\"\r\n [alt]=\"title || 'Pr\u00E9-visualiza\u00E7\u00E3o'\"\r\n [style.object-fit]=\"objectFit\"\r\n (load)=\"onImgLoad()\"\r\n (error)=\"onImgError()\"\r\n />\r\n }\r\n }\r\n </div>\r\n\r\n @if (showActions) {\r\n <div class=\"image-preview-panel__actions\" role=\"group\" [attr.aria-label]=\"'A\u00E7\u00F5es da imagem'\">\r\n <app-button\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"ButtonVariant.Secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onTrocar()\"\r\n >\r\n Trocar\r\n </app-button>\r\n <app-button\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"ButtonVariant.Danger\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onRemover()\"\r\n >\r\n Remover\r\n </app-button>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;max-width:100%;box-sizing:border-box;user-select:none;-webkit-user-select:none}.image-preview-panel{display:flex;flex-direction:column;gap:.75rem;min-width:0}.image-preview-panel--rounded .image-preview-panel__title,.image-preview-panel--rounded .image-preview-panel__subtitle{padding-left:.05rem}.image-preview-panel__title{font-size:.95rem;font-weight:600;margin:0;color:#171717;line-height:1.3}.image-preview-panel__subtitle{font-size:.8rem;line-height:1.4;margin:-.2rem 0 0;color:#525252}.image-preview-panel__frame{position:relative;width:100%;min-height:12rem;aspect-ratio:4/3;max-height:min(50vh,24rem);border:1px solid var(--ui-field-float-border, #e5e5e5);border-radius:8px;background:var(--ui-page-bg, #f4f4f5);overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.image-preview-panel__frame--rounded{border-radius:12px}.image-preview-panel__img{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;align-self:stretch;object-position:center;border-radius:0}.image-preview-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 1rem;text-align:center;color:#737373;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__empty-icon{font-size:1.75rem;opacity:.55}.image-preview-panel__empty-text{font-size:.82rem;line-height:1.4;max-width:16rem}.image-preview-panel__preview-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.5rem 1rem;text-align:center;color:#a16207;background:#fffbeb;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__preview-fallback-icon{font-size:1.25rem;opacity:.9}.image-preview-panel__preview-fallback-text{font-size:.8rem;line-height:1.4;max-width:16rem}.image-preview-panel__pdf{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;border:0;background:#fff}.image-preview-panel__skeleton{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:#f4f4f5}.image-preview-panel__skeleton-poster{display:block;flex:1 1 auto;min-height:0;width:100%!important;height:auto!important}.image-preview-panel__skeleton-lines{display:flex;flex-direction:column;gap:.5rem;padding:.75rem .9rem .85rem;flex:0 0 auto}.image-preview-panel__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.image-preview-panel--loading .image-preview-panel__actions{display:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "app-button" }, { kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6420
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ImagePreviewPanelComponent, isStandalone: true, selector: "app-image-preview-panel", inputs: { title: "title", subtitle: "subtitle", imageUrl: "imageUrl", file: "file", emptyText: "emptyText", loading: ["loading", "loading", booleanAttribute], rounded: ["rounded", "rounded", booleanAttribute], showImageActions: ["showImageActions", "showImageActions", booleanAttribute], objectFit: "objectFit" }, outputs: { remove: "remove", change: "change" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"image-preview-panel\"\r\n [class.image-preview-panel--rounded]=\"rounded\"\r\n [class.image-preview-panel--loading]=\"loading\"\r\n>\r\n @if (title && title.length > 0) {\r\n <h3 class=\"image-preview-panel__title\">{{ title }}</h3>\r\n }\r\n @if (subtitle && subtitle.length > 0) {\r\n <p class=\"image-preview-panel__subtitle\">{{ subtitle }}</p>\r\n }\r\n\r\n <div\r\n class=\"image-preview-panel__frame\"\r\n [class.image-preview-panel__frame--rounded]=\"rounded\"\r\n >\r\n @if (loading) {\r\n <div\r\n class=\"image-preview-panel__skeleton\"\r\n role=\"status\"\r\n aria-label=\"Carregando pr\u00E9-visualiza\u00E7\u00E3o\"\r\n >\r\n <app-skeleton-block\r\n class=\"image-preview-panel__skeleton-poster\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n radius=\"0\"\r\n />\r\n <div class=\"image-preview-panel__skeleton-lines\">\r\n <app-skeleton-block width=\"72%\" height=\"0.6rem\" radius=\"6px\" />\r\n <app-skeleton-block width=\"48%\" height=\"0.55rem\" radius=\"6px\" />\r\n </div>\r\n </div>\r\n } @else if (showEmpty) {\r\n <div class=\"image-preview-panel__empty\" role=\"img\" [attr.aria-label]=\"emptyText\">\r\n <i class=\"fa-regular fa-image image-preview-panel__empty-icon\" aria-hidden=\"true\"></i>\r\n <span class=\"image-preview-panel__empty-text\">{{ emptyText }}</span>\r\n </div>\r\n } @else {\r\n @if (showPreviewFallback) {\r\n <div\r\n class=\"image-preview-panel__preview-fallback\"\r\n role=\"status\"\r\n [attr.aria-label]=\"previewUnavailableMessage\"\r\n >\r\n <i\r\n class=\"fa-solid fa-triangle-exclamation image-preview-panel__preview-fallback-icon\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <span class=\"image-preview-panel__preview-fallback-text\">{{ previewUnavailableMessage }}</span>\r\n </div>\r\n } @else if (showPdf) {\r\n <iframe\r\n class=\"image-preview-panel__pdf\"\r\n [src]=\"safePdfUrl\"\r\n title=\"Pr\u00E9-visualiza\u00E7\u00E3o do PDF\"\r\n (error)=\"onPdfFrameError()\"\r\n ></iframe>\r\n } @else if (showImage) {\r\n <img\r\n class=\"image-preview-panel__img\"\r\n [src]=\"displaySrc!\"\r\n [alt]=\"title || 'Pr\u00E9-visualiza\u00E7\u00E3o'\"\r\n [style.object-fit]=\"objectFit\"\r\n (load)=\"onImgLoad()\"\r\n (error)=\"onImgError()\"\r\n />\r\n }\r\n }\r\n </div>\r\n\r\n @if (showActions) {\r\n <div class=\"image-preview-panel__actions\" role=\"group\" [attr.aria-label]=\"'A\u00E7\u00F5es da imagem'\">\r\n <app-button\r\n type=\"button\"\r\n variant=\"secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onTrocar()\"\r\n >\r\n Trocar\r\n </app-button>\r\n <app-button\r\n type=\"button\"\r\n variant=\"danger\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onRemover()\"\r\n >\r\n Remover\r\n </app-button>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;max-width:100%;box-sizing:border-box;user-select:none;-webkit-user-select:none}.image-preview-panel{display:flex;flex-direction:column;gap:.75rem;min-width:0}.image-preview-panel--rounded .image-preview-panel__title,.image-preview-panel--rounded .image-preview-panel__subtitle{padding-left:.05rem}.image-preview-panel__title{font-size:.95rem;font-weight:600;margin:0;color:#171717;line-height:1.3}.image-preview-panel__subtitle{font-size:.8rem;line-height:1.4;margin:-.2rem 0 0;color:#525252}.image-preview-panel__frame{position:relative;width:100%;min-height:12rem;aspect-ratio:4/3;max-height:min(50vh,24rem);border:1px solid var(--ui-field-float-border, #e5e5e5);border-radius:8px;background:var(--ui-page-bg, #f4f4f5);overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.image-preview-panel__frame--rounded{border-radius:12px}.image-preview-panel__img{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;align-self:stretch;object-position:center;border-radius:0}.image-preview-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 1rem;text-align:center;color:#737373;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__empty-icon{font-size:1.75rem;opacity:.55}.image-preview-panel__empty-text{font-size:.82rem;line-height:1.4;max-width:16rem}.image-preview-panel__preview-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.5rem 1rem;text-align:center;color:#a16207;background:#fffbeb;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__preview-fallback-icon{font-size:1.25rem;opacity:.9}.image-preview-panel__preview-fallback-text{font-size:.8rem;line-height:1.4;max-width:16rem}.image-preview-panel__pdf{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;border:0;background:#fff}.image-preview-panel__skeleton{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:#f4f4f5}.image-preview-panel__skeleton-poster{display:block;flex:1 1 auto;min-height:0;width:100%!important;height:auto!important}.image-preview-panel__skeleton-lines{display:flex;flex-direction:column;gap:.5rem;padding:.75rem .9rem .85rem;flex:0 0 auto}.image-preview-panel__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.image-preview-panel--loading .image-preview-panel__actions{display:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "app-button" }, { kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6399
6421
  }
6400
6422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ImagePreviewPanelComponent, decorators: [{
6401
6423
  type: Component,
6402
- args: [{ selector: 'app-image-preview-panel', standalone: true, imports: [ButtonComponent, SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"image-preview-panel\"\r\n [class.image-preview-panel--rounded]=\"rounded\"\r\n [class.image-preview-panel--loading]=\"loading\"\r\n>\r\n @if (title && title.length > 0) {\r\n <h3 class=\"image-preview-panel__title\">{{ title }}</h3>\r\n }\r\n @if (subtitle && subtitle.length > 0) {\r\n <p class=\"image-preview-panel__subtitle\">{{ subtitle }}</p>\r\n }\r\n\r\n <div\r\n class=\"image-preview-panel__frame\"\r\n [class.image-preview-panel__frame--rounded]=\"rounded\"\r\n >\r\n @if (loading) {\r\n <div\r\n class=\"image-preview-panel__skeleton\"\r\n role=\"status\"\r\n aria-label=\"Carregando pr\u00E9-visualiza\u00E7\u00E3o\"\r\n >\r\n <app-skeleton-block\r\n class=\"image-preview-panel__skeleton-poster\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n radius=\"0\"\r\n />\r\n <div class=\"image-preview-panel__skeleton-lines\">\r\n <app-skeleton-block width=\"72%\" height=\"0.6rem\" radius=\"6px\" />\r\n <app-skeleton-block width=\"48%\" height=\"0.55rem\" radius=\"6px\" />\r\n </div>\r\n </div>\r\n } @else if (showEmpty) {\r\n <div class=\"image-preview-panel__empty\" role=\"img\" [attr.aria-label]=\"emptyText\">\r\n <i class=\"fa-regular fa-image image-preview-panel__empty-icon\" aria-hidden=\"true\"></i>\r\n <span class=\"image-preview-panel__empty-text\">{{ emptyText }}</span>\r\n </div>\r\n } @else {\r\n @if (showPreviewFallback) {\r\n <div\r\n class=\"image-preview-panel__preview-fallback\"\r\n role=\"status\"\r\n [attr.aria-label]=\"previewUnavailableMessage\"\r\n >\r\n <i\r\n class=\"fa-solid fa-triangle-exclamation image-preview-panel__preview-fallback-icon\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <span class=\"image-preview-panel__preview-fallback-text\">{{ previewUnavailableMessage }}</span>\r\n </div>\r\n } @else if (showPdf) {\r\n <iframe\r\n class=\"image-preview-panel__pdf\"\r\n [src]=\"safePdfUrl\"\r\n title=\"Pr\u00E9-visualiza\u00E7\u00E3o do PDF\"\r\n (error)=\"onPdfFrameError()\"\r\n ></iframe>\r\n } @else if (showImage) {\r\n <img\r\n class=\"image-preview-panel__img\"\r\n [src]=\"displaySrc!\"\r\n [alt]=\"title || 'Pr\u00E9-visualiza\u00E7\u00E3o'\"\r\n [style.object-fit]=\"objectFit\"\r\n (load)=\"onImgLoad()\"\r\n (error)=\"onImgError()\"\r\n />\r\n }\r\n }\r\n </div>\r\n\r\n @if (showActions) {\r\n <div class=\"image-preview-panel__actions\" role=\"group\" [attr.aria-label]=\"'A\u00E7\u00F5es da imagem'\">\r\n <app-button\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"ButtonVariant.Secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onTrocar()\"\r\n >\r\n Trocar\r\n </app-button>\r\n <app-button\r\n [type]=\"ButtonType.Button\"\r\n [variant]=\"ButtonVariant.Danger\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onRemover()\"\r\n >\r\n Remover\r\n </app-button>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;max-width:100%;box-sizing:border-box;user-select:none;-webkit-user-select:none}.image-preview-panel{display:flex;flex-direction:column;gap:.75rem;min-width:0}.image-preview-panel--rounded .image-preview-panel__title,.image-preview-panel--rounded .image-preview-panel__subtitle{padding-left:.05rem}.image-preview-panel__title{font-size:.95rem;font-weight:600;margin:0;color:#171717;line-height:1.3}.image-preview-panel__subtitle{font-size:.8rem;line-height:1.4;margin:-.2rem 0 0;color:#525252}.image-preview-panel__frame{position:relative;width:100%;min-height:12rem;aspect-ratio:4/3;max-height:min(50vh,24rem);border:1px solid var(--ui-field-float-border, #e5e5e5);border-radius:8px;background:var(--ui-page-bg, #f4f4f5);overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.image-preview-panel__frame--rounded{border-radius:12px}.image-preview-panel__img{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;align-self:stretch;object-position:center;border-radius:0}.image-preview-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 1rem;text-align:center;color:#737373;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__empty-icon{font-size:1.75rem;opacity:.55}.image-preview-panel__empty-text{font-size:.82rem;line-height:1.4;max-width:16rem}.image-preview-panel__preview-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.5rem 1rem;text-align:center;color:#a16207;background:#fffbeb;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__preview-fallback-icon{font-size:1.25rem;opacity:.9}.image-preview-panel__preview-fallback-text{font-size:.8rem;line-height:1.4;max-width:16rem}.image-preview-panel__pdf{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;border:0;background:#fff}.image-preview-panel__skeleton{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:#f4f4f5}.image-preview-panel__skeleton-poster{display:block;flex:1 1 auto;min-height:0;width:100%!important;height:auto!important}.image-preview-panel__skeleton-lines{display:flex;flex-direction:column;gap:.5rem;padding:.75rem .9rem .85rem;flex:0 0 auto}.image-preview-panel__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.image-preview-panel--loading .image-preview-panel__actions{display:none}\n"] }]
6424
+ args: [{ selector: 'app-image-preview-panel', standalone: true, imports: [ButtonComponent, SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"image-preview-panel\"\r\n [class.image-preview-panel--rounded]=\"rounded\"\r\n [class.image-preview-panel--loading]=\"loading\"\r\n>\r\n @if (title && title.length > 0) {\r\n <h3 class=\"image-preview-panel__title\">{{ title }}</h3>\r\n }\r\n @if (subtitle && subtitle.length > 0) {\r\n <p class=\"image-preview-panel__subtitle\">{{ subtitle }}</p>\r\n }\r\n\r\n <div\r\n class=\"image-preview-panel__frame\"\r\n [class.image-preview-panel__frame--rounded]=\"rounded\"\r\n >\r\n @if (loading) {\r\n <div\r\n class=\"image-preview-panel__skeleton\"\r\n role=\"status\"\r\n aria-label=\"Carregando pr\u00E9-visualiza\u00E7\u00E3o\"\r\n >\r\n <app-skeleton-block\r\n class=\"image-preview-panel__skeleton-poster\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n radius=\"0\"\r\n />\r\n <div class=\"image-preview-panel__skeleton-lines\">\r\n <app-skeleton-block width=\"72%\" height=\"0.6rem\" radius=\"6px\" />\r\n <app-skeleton-block width=\"48%\" height=\"0.55rem\" radius=\"6px\" />\r\n </div>\r\n </div>\r\n } @else if (showEmpty) {\r\n <div class=\"image-preview-panel__empty\" role=\"img\" [attr.aria-label]=\"emptyText\">\r\n <i class=\"fa-regular fa-image image-preview-panel__empty-icon\" aria-hidden=\"true\"></i>\r\n <span class=\"image-preview-panel__empty-text\">{{ emptyText }}</span>\r\n </div>\r\n } @else {\r\n @if (showPreviewFallback) {\r\n <div\r\n class=\"image-preview-panel__preview-fallback\"\r\n role=\"status\"\r\n [attr.aria-label]=\"previewUnavailableMessage\"\r\n >\r\n <i\r\n class=\"fa-solid fa-triangle-exclamation image-preview-panel__preview-fallback-icon\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <span class=\"image-preview-panel__preview-fallback-text\">{{ previewUnavailableMessage }}</span>\r\n </div>\r\n } @else if (showPdf) {\r\n <iframe\r\n class=\"image-preview-panel__pdf\"\r\n [src]=\"safePdfUrl\"\r\n title=\"Pr\u00E9-visualiza\u00E7\u00E3o do PDF\"\r\n (error)=\"onPdfFrameError()\"\r\n ></iframe>\r\n } @else if (showImage) {\r\n <img\r\n class=\"image-preview-panel__img\"\r\n [src]=\"displaySrc!\"\r\n [alt]=\"title || 'Pr\u00E9-visualiza\u00E7\u00E3o'\"\r\n [style.object-fit]=\"objectFit\"\r\n (load)=\"onImgLoad()\"\r\n (error)=\"onImgError()\"\r\n />\r\n }\r\n }\r\n </div>\r\n\r\n @if (showActions) {\r\n <div class=\"image-preview-panel__actions\" role=\"group\" [attr.aria-label]=\"'A\u00E7\u00F5es da imagem'\">\r\n <app-button\r\n type=\"button\"\r\n variant=\"secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onTrocar()\"\r\n >\r\n Trocar\r\n </app-button>\r\n <app-button\r\n type=\"button\"\r\n variant=\"danger\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onRemover()\"\r\n >\r\n Remover\r\n </app-button>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;max-width:100%;box-sizing:border-box;user-select:none;-webkit-user-select:none}.image-preview-panel{display:flex;flex-direction:column;gap:.75rem;min-width:0}.image-preview-panel--rounded .image-preview-panel__title,.image-preview-panel--rounded .image-preview-panel__subtitle{padding-left:.05rem}.image-preview-panel__title{font-size:.95rem;font-weight:600;margin:0;color:#171717;line-height:1.3}.image-preview-panel__subtitle{font-size:.8rem;line-height:1.4;margin:-.2rem 0 0;color:#525252}.image-preview-panel__frame{position:relative;width:100%;min-height:12rem;aspect-ratio:4/3;max-height:min(50vh,24rem);border:1px solid var(--ui-field-float-border, #e5e5e5);border-radius:8px;background:var(--ui-page-bg, #f4f4f5);overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.image-preview-panel__frame--rounded{border-radius:12px}.image-preview-panel__img{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;align-self:stretch;object-position:center;border-radius:0}.image-preview-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 1rem;text-align:center;color:#737373;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__empty-icon{font-size:1.75rem;opacity:.55}.image-preview-panel__empty-text{font-size:.82rem;line-height:1.4;max-width:16rem}.image-preview-panel__preview-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.5rem 1rem;text-align:center;color:#a16207;background:#fffbeb;width:100%;height:100%;min-height:0;box-sizing:border-box}.image-preview-panel__preview-fallback-icon{font-size:1.25rem;opacity:.9}.image-preview-panel__preview-fallback-text{font-size:.8rem;line-height:1.4;max-width:16rem}.image-preview-panel__pdf{display:block;width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;border:0;background:#fff}.image-preview-panel__skeleton{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:#f4f4f5}.image-preview-panel__skeleton-poster{display:block;flex:1 1 auto;min-height:0;width:100%!important;height:auto!important}.image-preview-panel__skeleton-lines{display:flex;flex-direction:column;gap:.5rem;padding:.75rem .9rem .85rem;flex:0 0 auto}.image-preview-panel__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.image-preview-panel--loading .image-preview-panel__actions{display:none}\n"] }]
6403
6425
  }], propDecorators: { title: [{
6404
6426
  type: Input
6405
6427
  }], subtitle: [{
@@ -6428,29 +6450,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6428
6450
  }] } });
6429
6451
 
6430
6452
  /** Espaçamento entre itens da linha ou da pilha dentro de uma coluna. */
6431
- var FormLayoutGap;
6432
- (function (FormLayoutGap) {
6433
- FormLayoutGap["Xs"] = "xs";
6434
- FormLayoutGap["Sm"] = "sm";
6435
- FormLayoutGap["Md"] = "md";
6436
- FormLayoutGap["Lg"] = "lg";
6437
- })(FormLayoutGap || (FormLayoutGap = {}));
6453
+ const FormLayoutGap = {
6454
+ Xs: 'xs',
6455
+ Sm: 'sm',
6456
+ Md: 'md',
6457
+ Lg: 'lg',
6458
+ };
6438
6459
  /** Alinhamento no eixo cruzado (itens da linha). */
6439
- var FormRowAlign;
6440
- (function (FormRowAlign) {
6441
- FormRowAlign["Start"] = "start";
6442
- FormRowAlign["Center"] = "center";
6443
- FormRowAlign["End"] = "end";
6444
- FormRowAlign["Stretch"] = "stretch";
6445
- })(FormRowAlign || (FormRowAlign = {}));
6460
+ const FormRowAlign = {
6461
+ Start: 'start',
6462
+ Center: 'center',
6463
+ End: 'end',
6464
+ Stretch: 'stretch',
6465
+ };
6446
6466
  /** Distribuição no eixo principal. */
6447
- var FormRowJustify;
6448
- (function (FormRowJustify) {
6449
- FormRowJustify["Start"] = "start";
6450
- FormRowJustify["Center"] = "center";
6451
- FormRowJustify["End"] = "end";
6452
- FormRowJustify["Between"] = "between";
6453
- })(FormRowJustify || (FormRowJustify = {}));
6467
+ const FormRowJustify = {
6468
+ Start: 'start',
6469
+ Center: 'center',
6470
+ End: 'end',
6471
+ Between: 'between',
6472
+ };
6454
6473
  /** Variante visual do grupo. */
6455
6474
  var FormGroupVariant;
6456
6475
  (function (FormGroupVariant) {
@@ -6492,13 +6511,12 @@ var LayoutStackItemAlign;
6492
6511
  LayoutStackItemAlign["End"] = "end";
6493
6512
  })(LayoutStackItemAlign || (LayoutStackItemAlign = {}));
6494
6513
  /** Alinhamento em `app-form-actions` (barra de ações de formulário). */
6495
- var FormActionsAlign;
6496
- (function (FormActionsAlign) {
6497
- FormActionsAlign["Start"] = "start";
6498
- FormActionsAlign["Center"] = "center";
6499
- FormActionsAlign["End"] = "end";
6500
- FormActionsAlign["SpaceBetween"] = "space-between";
6501
- })(FormActionsAlign || (FormActionsAlign = {}));
6514
+ const FormActionsAlign = {
6515
+ Start: 'start',
6516
+ Center: 'center',
6517
+ End: 'end',
6518
+ SpaceBetween: 'space-between',
6519
+ };
6502
6520
 
6503
6521
  /**
6504
6522
  * Linha separadora horizontal — mesmos tokens que `[divider]` em `app-form-actions`
@@ -6627,7 +6645,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6627
6645
  /** Barra de ações de formulário (Salvar, Cancelar, Adicionar, …). Projeção de conteúdo. */
6628
6646
  class FormActionsComponent {
6629
6647
  constructor() {
6630
- this.align = FormActionsAlign.End;
6648
+ this.align = 'end';
6631
6649
  this.stackOnMobile = true;
6632
6650
  /**
6633
6651
  * Por omissão `true`: os botões repartem a largura da faixa (um botão ≈ 100%; vários repartem por igual).
@@ -7288,9 +7306,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
7288
7306
  */
7289
7307
  class FormRowComponent {
7290
7308
  constructor() {
7291
- this.gap = FormLayoutGap.Md;
7292
- this.align = FormRowAlign.Stretch;
7293
- this.justify = FormRowJustify.Start;
7309
+ this.gap = 'md';
7310
+ this.align = 'stretch';
7311
+ this.justify = 'start';
7294
7312
  /**
7295
7313
  * Quando `true`, cada filho que **não** é `app-form-col` ocupa uma linha inteira da grelha
7296
7314
  * (`grid-column: 1 / -1`). Sem `grow`, campos soltos já dividem a linha em partes iguais.
@@ -10224,5 +10242,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
10224
10242
  * Generated bundle index. Do not edit.
10225
10243
  */
10226
10244
 
10227
- export { ADAPTIVE_DATA_VIEW_MOBILE_QUERY, APP_SIDEBAR_LABEL_REVEAL_LAG_MS, APP_SIDEBAR_LAYOUT_DURATION_MS, APP_SIDEBAR_NAV_REVEAL_TOTAL_MS, APP_THEME_IDS, ActionMenuComponent, AdaptiveDataViewComponent, AnchoredOverlayComponent, AppBreadcrumbComponent, AppDialogComponent, AppLibLightBlockScrollStrategy, AppShellComponent, AppShellSidebarTemplateDirective, AppShellSidebarToggleComponent, AppSidebarComponent, AppSidebarToolbarDirective, AppTheme, AppThemeService, AppTopbarComponent, AppUserMenuComponent, BR_ESTADOS_NOME_SIGLA, BaseFieldComponent, BaseFieldDirective, BooleanFieldDirective, ButtonComponent, ButtonSize, ButtonType, ButtonVariant, CardListComponent, CepFieldComponent, CheckboxFieldComponent, ConfirmDialogComponent, ConfirmDialogService, ContextMenuComponent, CpfCnpjFieldComponent, DashboardSectionComponent, DataCardComponent, DataGridComponent, DataListComponent, DataToolbarComponent, DateFieldComponent, DecimalFieldComponent, DetailsFieldComponent, DetailsViewComponent, DialogFooterDirective, DividerComponent, DrawerComponent, DrawerSide, DrawerSize, DropdownBaseComponent, DropdownMenuComponent, DropdownMultiOptionFieldBase, DropdownOptionFieldBase, DropdownSearchFieldComponent, EmptyStateComponent, FILE_PREVIEW_UNAVAILABLE_MESSAGE, FileUploadFieldComponent, FormActionsAlign, FormActionsComponent, FormColComponent, FormGroupComponent, FormGroupVariant, FormLayoutGap, FormRowAlign, FormRowComponent, FormRowJustify, FormSectionComponent, FormTabComponent, FormTabsComponent, ImagePreviewPanelComponent, InputMaskFieldComponent, IntegerFieldComponent, LAYOUT_STACK_SIDE_BY_SIDE, LAYOUT_STACK_STACKED, LayoutStackAlign, LayoutStackComponent, LayoutStackDirection, LayoutStackItemAlign, LibDialogSize, ListItemComponent, LoadingDialogComponent, LoadingDialogService, MaskedTextFieldBase, MenuDividerComponent, MenuDropdownPlacement, MenuGroupComponent, MenuListComponent, MultiselectFieldComponent, NgControlFieldDirective, OverlayPlacement, PDF_IFRAME_VIEWER_HASH, PasswordFieldComponent, PhoneFieldComponent, PopoverBodyTemplateDirective, PopoverComponent, PopoverFooterTemplateDirective, PopoverTriggerDirective, STRUCTRA_UI, SelectFieldComponent, SkeletonBlockComponent, SkeletonCardComponent, SkeletonFieldShellComponent, SkeletonListComponent, SkeletonTableComponent, SkeletonTextComponent, StatCardComponent, StatusBadgeComponent, SwitchFieldComponent, TableEmptyStateComponent, TableToolbarComponent, TextFieldComponent, TextareaFieldComponent, ToastHostComponent, ToastService, TooltipComponent, TooltipPanelTemplateDirective, ValidationSummaryComponent, anchoredOverlayPositions, appendPdfIframeViewerParams, applyPickedCalendarDate, buildDecimalBrDisplay, buildDecimalBrParseString, buildEmptyStateOverlayHtml, caretIndexFromIntegerDigitCount, caretIndexFromSemantic, cepMaskCompleteValidator, cpfCnpjMaskCompleteValidator, escapeHtml, extractDecimalBrParts, fileIsLikelyImage, fileMatchesAccept, fixedDigitsMaskCompleteValidator, formatAcceptForDisplay, formatDateTimePtBr, formatDecimalBr, formatFileSizeBytes, formatIntegerThousandsBr, formatMaskDigits, formatUiFieldDateValue, getFilePreviewKind, libDialogPanelClasses, mapEstadosToOptions, maskDigitCount, normalizeFormDateValue, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, phoneBrMaskCompleteValidator, resolveControlAtPath, sanitizeDecimalBrInput, sanitizeIntegerDigits, sectionHasVisibleInvalid, semanticCaretAt, semanticIntegerDigitCountLeft, stripToDigits, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid };
10245
+ export { ADAPTIVE_DATA_VIEW_MOBILE_QUERY, APP_SIDEBAR_LABEL_REVEAL_LAG_MS, APP_SIDEBAR_LAYOUT_DURATION_MS, APP_SIDEBAR_NAV_REVEAL_TOTAL_MS, APP_THEME_IDS, ActionMenuComponent, AdaptiveDataViewComponent, AnchoredOverlayComponent, AppBreadcrumbComponent, AppDialogComponent, AppLibLightBlockScrollStrategy, AppShellComponent, AppShellSidebarTemplateDirective, AppShellSidebarToggleComponent, AppSidebarComponent, AppSidebarToolbarDirective, AppTheme, AppThemeService, AppTopbarComponent, AppUserMenuComponent, BR_ESTADOS_NOME_SIGLA, BaseFieldComponent, BaseFieldDirective, BooleanFieldDirective, ButtonComponent, ButtonRadius, ButtonSize, ButtonType, ButtonVariant, CardListComponent, CepFieldComponent, CheckboxFieldComponent, ConfirmDialogComponent, ConfirmDialogService, ContextMenuComponent, CpfCnpjFieldComponent, DashboardSectionComponent, DataCardComponent, DataGridComponent, DataListComponent, DataToolbarComponent, DateFieldComponent, DecimalFieldComponent, DetailsFieldComponent, DetailsViewComponent, DialogFooterDirective, DividerComponent, DrawerComponent, DrawerSide, DrawerSize, DropdownBaseComponent, DropdownMenuComponent, DropdownMultiOptionFieldBase, DropdownOptionFieldBase, DropdownSearchFieldComponent, EmptyStateComponent, FILE_PREVIEW_UNAVAILABLE_MESSAGE, FileUploadFieldComponent, FormActionsAlign, FormActionsComponent, FormColComponent, FormGroupComponent, FormGroupVariant, FormLayoutGap, FormRowAlign, FormRowComponent, FormRowJustify, FormSectionComponent, FormTabComponent, FormTabsComponent, ImagePreviewPanelComponent, InputMaskFieldComponent, IntegerFieldComponent, LAYOUT_STACK_SIDE_BY_SIDE, LAYOUT_STACK_STACKED, LayoutStackAlign, LayoutStackComponent, LayoutStackDirection, LayoutStackItemAlign, LibDialogSize, ListItemComponent, LoadingDialogComponent, LoadingDialogService, MaskedTextFieldBase, MenuDividerComponent, MenuDropdownPlacement, MenuGroupComponent, MenuListComponent, MultiselectFieldComponent, NgControlFieldDirective, OverlayPlacement, PDF_IFRAME_VIEWER_HASH, PasswordFieldComponent, PhoneFieldComponent, PopoverBodyTemplateDirective, PopoverComponent, PopoverFooterTemplateDirective, PopoverTriggerDirective, STRUCTRA_UI, SelectFieldComponent, SkeletonBlockComponent, SkeletonCardComponent, SkeletonFieldShellComponent, SkeletonListComponent, SkeletonTableComponent, SkeletonTextComponent, StatCardComponent, StatusBadgeComponent, SwitchFieldComponent, TableEmptyStateComponent, TableToolbarComponent, TextFieldComponent, TextareaFieldComponent, ToastHostComponent, ToastService, TooltipComponent, TooltipPanelTemplateDirective, ValidationSummaryComponent, anchoredOverlayPositions, appendPdfIframeViewerParams, applyPickedCalendarDate, buildDecimalBrDisplay, buildDecimalBrParseString, buildEmptyStateOverlayHtml, caretIndexFromIntegerDigitCount, caretIndexFromSemantic, cepMaskCompleteValidator, cpfCnpjMaskCompleteValidator, escapeHtml, extractDecimalBrParts, fileIsLikelyImage, fileMatchesAccept, fixedDigitsMaskCompleteValidator, formatAcceptForDisplay, formatDateTimePtBr, formatDecimalBr, formatFileSizeBytes, formatIntegerThousandsBr, formatMaskDigits, formatUiFieldDateValue, getFilePreviewKind, libDialogPanelClasses, mapEstadosToOptions, maskDigitCount, normalizeFormDateValue, parseDecimalBr, parseIntegerString, parseUiFieldDateValue, phoneBrMaskCompleteValidator, resolveControlAtPath, sanitizeDecimalBrInput, sanitizeIntegerDigits, sectionHasVisibleInvalid, semanticCaretAt, semanticIntegerDigitCountLeft, stripToDigits, subscribeMarkForCheckOnInvalidUiRefresh, subtreeHasVisibleInvalid };
10228
10246
  //# sourceMappingURL=structra-ui.mjs.map