valtech-components 4.0.108 → 4.0.110

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.
@@ -39,11 +39,11 @@ export declare class RightsFooterComponent {
39
39
  /**
40
40
  * Computed helper for align prop in template.
41
41
  */
42
- propsAlign: import("@angular/core").Signal<"left" | "center" | "right">;
42
+ propsAlign: import("@angular/core").Signal<"right" | "center" | "left">;
43
43
  /**
44
44
  * Computed helper for color prop in template.
45
45
  */
46
- propsColor: import("@angular/core").Signal<"success" | "medium" | "primary" | "secondary" | "tertiary" | "warning" | "danger" | "light" | "dark">;
46
+ propsColor: import("@angular/core").Signal<"success" | "dark" | "primary" | "secondary" | "tertiary" | "warning" | "danger" | "light" | "medium">;
47
47
  /**
48
48
  * Computed helper for withMargin prop in template.
49
49
  */
@@ -43,8 +43,8 @@ export declare class ContentReactionComponent implements OnInit, OnChanges {
43
43
  commentOnValues: ReactionValue[];
44
44
  commentPlaceholder: string;
45
45
  maxCommentLength: number;
46
- emojis: [string, string] | [string, string, string];
47
- emojiLabels: [string, string] | [string, string, string];
46
+ emojis: [string, string, string] | [string, string];
47
+ emojiLabels: [string, string, string] | [string, string];
48
48
  showThankYou: boolean;
49
49
  thankYouMessage: string;
50
50
  disabled: boolean;
@@ -35,7 +35,7 @@ export declare class CtaCardComponent {
35
35
  /** Emitted with the token of the clicked action button */
36
36
  onAction: EventEmitter<string>;
37
37
  /** Merged configuration with defaults */
38
- config: import("@angular/core").Signal<CtaCardMetadata & Required<Pick<CtaCardMetadata, "borderRadius" | "bordered" | "shadowed" | "align" | "padding">>>;
38
+ config: import("@angular/core").Signal<CtaCardMetadata & Required<Pick<CtaCardMetadata, "padding" | "borderRadius" | "bordered" | "shadowed" | "align">>>;
39
39
  getBackground(): string;
40
40
  getColor(): string | null;
41
41
  static ɵfac: i0.ɵɵFactoryDeclaration<CtaCardComponent, never>;
@@ -42,7 +42,7 @@ export declare class FeaturesListComponent {
42
42
  iconSize: number;
43
43
  mode: "horizontal" | "vertical";
44
44
  gap: "small" | "medium" | "large";
45
- alignment: "center" | "start";
45
+ alignment: "start" | "center";
46
46
  imageShape: "circle" | "square";
47
47
  maxVisible: number;
48
48
  showMoreLabel?: string;
@@ -28,7 +28,7 @@ export declare class MetricCardComponent {
28
28
  /** Emitted with the token of the clicked action */
29
29
  onAction: EventEmitter<string>;
30
30
  /** Merged configuration with defaults */
31
- config: import("@angular/core").Signal<MetricCardMetadata & Required<Pick<MetricCardMetadata, "borderRadius" | "bordered" | "shadowed" | "padding">>>;
31
+ config: import("@angular/core").Signal<MetricCardMetadata & Required<Pick<MetricCardMetadata, "padding" | "borderRadius" | "bordered" | "shadowed">>>;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<MetricCardComponent, never>;
33
33
  static ɵcmp: i0.ɵɵComponentDeclaration<MetricCardComponent, "val-metric-card", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, { "onAction": "onAction"; }, never, never, true, never>;
34
34
  }
@@ -2,37 +2,23 @@ import { EventEmitter } from '@angular/core';
2
2
  import { SectionHeaderMetadata } from './types';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
- * val-section-header
5
+ * val-section-header — standard section eyebrow for all factory apps.
6
6
  *
7
- * Standard molecule for section titles across all factory apps. Renders a
8
- * bold title + optional right-aligned action button(s) on one row, with an
9
- * optional muted subtitle below.
10
- *
11
- * Replaces ad-hoc eyebrow spans, custom `.section-header` divs, and
12
- * paired val-title + val-button combinations that accumulate per-page
13
- * padding inconsistencies.
14
- *
15
- * **Actions:** pass `actions: ButtonMetadata[]` for right-side buttons.
16
- * Use `fill: 'clear'` + `size: 'small'` for a text-link style CTA, or
17
- * `fill: 'outline'` + `size: 'small'` for a contained button (e.g. "New").
7
+ * Two-row layout:
8
+ * ```
9
+ * ┌────────────────────────────────────────────────┐
10
+ * │ TITLE (bold 18px) [action btn] │ ← row 1, space-between
11
+ * │ info link / subtitle (muted 13px) │ ← row 2, optional
12
+ * └────────────────────────────────────────────────┘
13
+ * ```
18
14
  *
19
- * **Theming:** set `--val-section-header-cta-color` on the host or parent
20
- * to tint plain-text CTAs without affecting full buttons.
15
+ * CSS var `--val-section-header-cta-color` tints the `infoLink` text color.
21
16
  *
22
- * @example
23
- * ```html
24
- * <val-section-header
25
- * [props]="{
26
- * title: 'Premios',
27
- * subtitle: 'Regalos sorteados por ronda.',
28
- * actions: [{ text: '¿Qué son?', fill: 'clear', size: 'small', color: 'primary', type: 'button', state: 'ENABLED', token: 'info' }]
29
- * }"
30
- * (actionClick)="openInfoModal()" />
31
- * ```
17
+ * Both `action` (button) and `infoLink` (text link) emit `(actionClick)` with
18
+ * their respective `token`.
32
19
  */
33
20
  export declare class SectionHeaderComponent {
34
21
  readonly props: import("@angular/core").InputSignal<Partial<SectionHeaderMetadata>>;
35
- /** Emits the clicked button's `token` (from `actions`). */
36
22
  actionClick: EventEmitter<string>;
37
23
  readonly config: import("@angular/core").Signal<SectionHeaderMetadata>;
38
24
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionHeaderComponent, never>;
@@ -2,44 +2,61 @@ import { ButtonMetadata } from '../../types';
2
2
  /**
3
3
  * Configuration for `val-section-header`.
4
4
  *
5
- * Presentational molecule — all strings are already-resolved (consumer
6
- * translates via I18nService). No i18n of its own.
5
+ * Layout (two rows):
6
+ * ```
7
+ * ┌─────────────────────────────────────────────┐
8
+ * │ title (bold, 18px) [action button] │ ← row 1, space-between
9
+ * │ info link / subtitle (muted) │ ← row 2, optional
10
+ * └─────────────────────────────────────────────┘
11
+ * ```
12
+ *
13
+ * Both `action` and `infoLink` emit `(actionClick)` with their `token`.
7
14
  *
8
- * @example Title-only
15
+ * @example Title + primary action button
9
16
  * ```html
10
- * <val-section-header [props]="{ title: 'Talonarios' }" />
17
+ * <val-section-header
18
+ * [props]="{ title: 'Talonarios', action: createButtonProps() }"
19
+ * (actionClick)="openCreate()" />
11
20
  * ```
12
21
  *
13
- * @example Title + text CTA + subtitle
22
+ * @example Title + row-1 info link (no primary action)
14
23
  * ```html
15
24
  * <val-section-header
16
- * [props]="{
17
- * title: 'Premios',
18
- * subtitle: 'Los regalos sorteados durante el evento.',
19
- * actions: [{ text: '¿Qué son?', fill: 'clear', size: 'small', color: 'primary', type: 'button', state: 'ENABLED', token: 'info' }]
20
- * }"
21
- * (actionClick)="openInfoModal()" />
25
+ * [props]="{ title: 'Premios', infoLink: { label: '¿Qué son?', token: 'info' } }"
26
+ * (actionClick)="openInfo()" />
22
27
  * ```
23
28
  *
24
- * @example Title + create button
29
+ * @example Full — title + action + row-2 info link
25
30
  * ```html
26
31
  * <val-section-header
27
32
  * [props]="{
28
- * title: 'Talonarios',
29
- * actions: [{ text: 'Nueva tanda', fill: 'outline', size: 'small', color: 'primary', type: 'button', state: 'ENABLED', token: 'create' }]
33
+ * title: 'Vendedores y talonarios',
34
+ * action: createButtonProps(),
35
+ * infoLink: { label: '¿Qué son los talonarios?', token: 'info' }
30
36
  * }"
31
37
  * (actionClick)="onAction($event)" />
32
38
  * ```
33
39
  */
34
40
  export interface SectionHeaderMetadata {
35
- /** Main section title. Bold, ~18px. */
41
+ /** Main section title — bold, ~18px. */
36
42
  title: string;
37
- /** Muted helper line below the title row. */
38
- subtitle?: string;
39
43
  /**
40
- * Right-aligned action buttons. Rendered as `val-button` components.
41
- * Each emits `(actionClick)` with its own `token`.
42
- * Use `fill: 'clear'` + `size: 'small'` for a text-link style CTA.
44
+ * Primary action button rendered on the RIGHT of row 1 (space-between).
45
+ * Emits `(actionClick)` with the button's `token`.
46
+ */
47
+ action?: ButtonMetadata;
48
+ /**
49
+ * Clickable info / help link rendered at the START of row 2 (below title).
50
+ * Emits `(actionClick)` with its `token` (defaults to `'info'`).
51
+ * Use for "¿Qué es esto?"-style links.
43
52
  */
44
- actions?: ButtonMetadata[];
53
+ infoLink?: {
54
+ label: string;
55
+ token?: string;
56
+ };
57
+ /**
58
+ * Static muted text in row 2 (shown below `infoLink` if both are set).
59
+ * Use for brief descriptive copy that does not need to be clickable.
60
+ */
61
+ subtitle?: string;
45
62
  }
@@ -35,7 +35,7 @@ export declare class AccountViewComponent {
35
35
  * mergea con los defaults — `@Input` gana sobre route data.
36
36
  */
37
37
  config?: AccountViewConfig;
38
- readonly resolvedConfig: import("@angular/core").Signal<Required<Omit<AccountViewConfig, "onOrgSwitched" | "onOrgCreated" | "onLoggedOut" | "onAccountDeleted">> & Pick<AccountViewConfig, "onOrgSwitched" | "onOrgCreated" | "onLoggedOut" | "onAccountDeleted">>;
38
+ readonly resolvedConfig: import("@angular/core").Signal<Required<Omit<AccountViewConfig, "onOrgCreated" | "onOrgSwitched" | "onLoggedOut" | "onAccountDeleted">> & Pick<AccountViewConfig, "onOrgCreated" | "onOrgSwitched" | "onLoggedOut" | "onAccountDeleted">>;
39
39
  /** Namespace i18n resuelto (capturado para llamadas no-reactivas). */
40
40
  private get ns();
41
41
  readonly orgs: import("@angular/core").WritableSignal<Organization[]>;
@@ -57,7 +57,7 @@ export declare class ArticleComponent implements OnInit {
57
57
  linkConfig?: import("valtech-components").LinkProcessorConfig;
58
58
  allowPartialBold?: boolean;
59
59
  authorColor?: import("@ionic/core").Color;
60
- alignment?: "left" | "center" | "right";
60
+ alignment?: "right" | "center" | "left";
61
61
  showQuoteMark?: boolean;
62
62
  };
63
63
  getHighlightTextProps(element: ArticleElement): {
@@ -76,7 +76,7 @@ export declare class ArticleComponent implements OnInit {
76
76
  getHighlightColor(element: ArticleElement): string;
77
77
  getButtonProps(element: ArticleElement): {
78
78
  actionType?: import("valtech-components").ActionType;
79
- expand?: "full" | "block";
79
+ expand?: "block" | "full";
80
80
  link?: string;
81
81
  href?: string;
82
82
  routerLink?: string | any[];
@@ -92,8 +92,8 @@ export declare class ArticleComponent implements OnInit {
92
92
  icon?: import("valtech-components").IconMetada;
93
93
  shape?: "round";
94
94
  size?: "default" | "small" | "large";
95
- fill?: "default" | "clear" | "outline" | "solid";
96
- type: "reset" | "submit" | "button";
95
+ fill?: "default" | "solid" | "clear" | "outline";
96
+ type: "submit" | "button" | "reset";
97
97
  token?: string;
98
98
  ref?: any;
99
99
  handler?: (value: any) => any;
@@ -35,7 +35,7 @@ export declare class AuthCtaComponent {
35
35
  onRegister: EventEmitter<void>;
36
36
  constructor();
37
37
  /** Merged configuration with defaults */
38
- config: import("@angular/core").Signal<AuthCtaMetadata & Required<Pick<AuthCtaMetadata, "borderRadius" | "align" | "padding">>>;
38
+ config: import("@angular/core").Signal<AuthCtaMetadata & Required<Pick<AuthCtaMetadata, "padding" | "borderRadius" | "align">>>;
39
39
  loginLabel: import("@angular/core").Signal<string>;
40
40
  registerLabel: import("@angular/core").Signal<string>;
41
41
  topLogoProps: import("@angular/core").Signal<{
@@ -90,7 +90,7 @@ export declare class NotificationPreferencesViewComponent implements OnInit, OnD
90
90
  readonly busyLabel: import("@angular/core").Signal<string>;
91
91
  readonly contextMessage: import("@angular/core").Signal<string>;
92
92
  readonly alertVariant: import("@angular/core").Signal<"warning" | "danger" | "info">;
93
- readonly alertIcon: import("@angular/core").Signal<"alert-circle-outline" | "close-circle-outline">;
93
+ readonly alertIcon: import("@angular/core").Signal<"close-circle-outline" | "alert-circle-outline">;
94
94
  readonly toggleProps: import("@angular/core").Signal<ToggleInputMetadata>;
95
95
  readonly retryButtonProps: import("@angular/core").Signal<Partial<ButtonMetadata>>;
96
96
  readonly tokenPreview: import("@angular/core").Signal<string>;
@@ -51,7 +51,7 @@ export declare class OrganizationViewComponent {
51
51
  * `resolvedConfig` mergea con los defaults — `@Input` gana sobre route data.
52
52
  */
53
53
  config?: OrganizationViewConfig;
54
- readonly resolvedConfig: import("@angular/core").Signal<Required<Omit<OrganizationViewConfig, "onOrgCreated" | "onOrgEdited" | "onMemberInvited" | "onOwnershipTransferred" | "onLeftOrg" | "onOrgDeleted">> & Pick<OrganizationViewConfig, "onOrgCreated" | "onOrgEdited" | "onMemberInvited" | "onOwnershipTransferred" | "onLeftOrg" | "onOrgDeleted">>;
54
+ readonly resolvedConfig: import("@angular/core").Signal<Required<Omit<OrganizationViewConfig, "onOrgEdited" | "onMemberInvited" | "onOwnershipTransferred" | "onLeftOrg" | "onOrgDeleted" | "onOrgCreated">> & Pick<OrganizationViewConfig, "onOrgEdited" | "onMemberInvited" | "onOwnershipTransferred" | "onLeftOrg" | "onOrgDeleted" | "onOrgCreated">>;
55
55
  /** Namespace i18n resuelto (capturado para llamadas no-reactivas). */
56
56
  private get ns();
57
57
  readonly org: import("@angular/core").WritableSignal<Organization>;
package/lib/version.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export declare const VERSION = "4.0.108";
5
+ export declare const VERSION = "4.0.110";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valtech-components",
3
- "version": "4.0.108",
3
+ "version": "4.0.110",
4
4
  "private": false,
5
5
  "bin": {
6
6
  "valtech-firebase-config": "./src/lib/services/firebase/scripts/generate-sw-config.js"