valtech-components 2.0.713 → 2.0.715

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.
Files changed (88) hide show
  1. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +3 -3
  2. package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
  3. package/esm2022/lib/components/atoms/button/button.component.mjs +3 -3
  4. package/esm2022/lib/components/atoms/container/container.component.mjs +52 -0
  5. package/esm2022/lib/components/atoms/container/types.mjs +2 -0
  6. package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
  7. package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
  8. package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
  9. package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
  10. package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
  11. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
  12. package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
  13. package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
  14. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
  15. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
  16. package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
  17. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
  18. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
  19. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
  20. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
  21. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +3 -3
  22. package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
  23. package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
  24. package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
  25. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
  26. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
  27. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
  28. package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
  29. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
  30. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
  31. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
  32. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
  33. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
  34. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
  35. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
  36. package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
  37. package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +63 -16
  38. package/esm2022/lib/components/organisms/cards-carousel/types.mjs +1 -1
  39. package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
  40. package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
  41. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +3 -3
  42. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
  43. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
  44. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
  45. package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +20 -20
  46. package/esm2022/lib/components/templates/page-wrapper/types.mjs +1 -1
  47. package/esm2022/lib/components/templates/simple/simple.component.mjs +7 -9
  48. package/esm2022/lib/services/auth/auth.service.mjs +33 -17
  49. package/esm2022/lib/version.mjs +2 -2
  50. package/esm2022/public-api.mjs +3 -12
  51. package/fesm2022/valtech-components.mjs +248 -2094
  52. package/fesm2022/valtech-components.mjs.map +1 -1
  53. package/lib/components/atoms/container/container.component.d.ts +30 -0
  54. package/lib/components/atoms/container/types.d.ts +11 -0
  55. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
  56. package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
  57. package/lib/components/organisms/article/article.component.d.ts +1 -1
  58. package/lib/components/organisms/bottom-nav/bottom-nav.component.d.ts +1 -1
  59. package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +12 -6
  60. package/lib/components/organisms/cards-carousel/types.d.ts +32 -3
  61. package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +2 -0
  62. package/lib/components/templates/page-wrapper/types.d.ts +7 -0
  63. package/lib/version.d.ts +1 -1
  64. package/package.json +1 -1
  65. package/public-api.d.ts +2 -11
  66. package/src/lib/components/styles/variables.scss +7 -0
  67. package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +0 -514
  68. package/esm2022/lib/components/molecules/participant-card/types.mjs +0 -21
  69. package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +0 -476
  70. package/esm2022/lib/components/molecules/raffle-status-card/types.mjs +0 -23
  71. package/esm2022/lib/components/molecules/recap-card/recap-card.component.mjs +0 -78
  72. package/esm2022/lib/components/molecules/recap-card/types.mjs +0 -2
  73. package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +0 -489
  74. package/esm2022/lib/components/molecules/ticket-grid/types.mjs +0 -11
  75. package/esm2022/lib/components/molecules/winner-display/types.mjs +0 -9
  76. package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +0 -359
  77. package/esm2022/lib/components/templates/layout/layout.component.mjs +0 -19
  78. package/lib/components/molecules/participant-card/participant-card.component.d.ts +0 -34
  79. package/lib/components/molecules/participant-card/types.d.ts +0 -132
  80. package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +0 -21
  81. package/lib/components/molecules/raffle-status-card/types.d.ts +0 -108
  82. package/lib/components/molecules/recap-card/recap-card.component.d.ts +0 -36
  83. package/lib/components/molecules/recap-card/types.d.ts +0 -30
  84. package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +0 -40
  85. package/lib/components/molecules/ticket-grid/types.d.ts +0 -122
  86. package/lib/components/molecules/winner-display/types.d.ts +0 -103
  87. package/lib/components/molecules/winner-display/winner-display.component.d.ts +0 -36
  88. package/lib/components/templates/layout/layout.component.d.ts +0 -5
@@ -0,0 +1,30 @@
1
+ import { ContainerAlign, ContainerMetadata, ContainerPadding, ContainerSize } from './types';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * val-container
5
+ *
6
+ * Layout primitive that caps content max-width using design tokens
7
+ * and centers it horizontally. Use to keep UX consistent on large
8
+ * screens without per-page CSS.
9
+ *
10
+ * @example
11
+ * <val-container size="xl">
12
+ * <!-- page content -->
13
+ * </val-container>
14
+ *
15
+ * @example
16
+ * <val-container [props]="{ size: 'md', padding: 'compact' }">
17
+ * <!-- narrower form -->
18
+ * </val-container>
19
+ */
20
+ export declare class ContainerComponent {
21
+ readonly props: import("@angular/core").InputSignal<ContainerMetadata>;
22
+ readonly size: import("@angular/core").Signal<ContainerSize>;
23
+ readonly padding: import("@angular/core").Signal<ContainerPadding>;
24
+ readonly align: import("@angular/core").Signal<ContainerAlign>;
25
+ get sizeAttr(): ContainerSize;
26
+ get paddingAttr(): ContainerPadding;
27
+ get alignAttr(): ContainerAlign;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContainerComponent, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContainerComponent, "val-container", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
30
+ }
@@ -0,0 +1,11 @@
1
+ export type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'fluid';
2
+ export type ContainerPadding = 'none' | 'compact' | 'comfortable';
3
+ export type ContainerAlign = 'start' | 'center';
4
+ export interface ContainerMetadata {
5
+ /** Max-width cap. fluid = no cap. Default: 'xl' (1100px) */
6
+ size?: ContainerSize;
7
+ /** Lateral padding. Default: 'comfortable' (16px) */
8
+ padding?: ContainerPadding;
9
+ /** Horizontal alignment. Default: 'center' */
10
+ align?: ContainerAlign;
11
+ }
@@ -39,7 +39,7 @@ 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<"center" | "left" | "right">;
43
43
  /**
44
44
  * Computed helper for color prop in template.
45
45
  */
@@ -49,7 +49,7 @@ export declare class FeaturesListComponent {
49
49
  iconSize: number;
50
50
  mode: "horizontal" | "vertical";
51
51
  gap: "small" | "medium" | "large";
52
- alignment: "center" | "start";
52
+ alignment: "start" | "center";
53
53
  }>;
54
54
  /** Resolved icon color (handles Ionic colors and CSS colors) */
55
55
  iconColorStyle: import("@angular/core").Signal<string>;
@@ -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?: "center" | "left" | "right";
61
61
  showQuoteMark?: boolean;
62
62
  };
63
63
  getHighlightTextProps(element: ArticleElement): {
@@ -63,7 +63,7 @@ export declare class BottomNavComponent implements OnInit, OnDestroy {
63
63
  i18nNamespace?: string;
64
64
  hideLabels: boolean;
65
65
  safeArea: boolean;
66
- animation: "none" | "fade" | "slide" | "scale";
66
+ animation: "none" | "slide" | "fade" | "scale";
67
67
  }>;
68
68
  /** Computed tabs with FAB inserted if present */
69
69
  displayTabs: import("@angular/core").Signal<BottomNavTab[]>;
@@ -1,19 +1,19 @@
1
- import { CardsCarouselMetadata } from './types';
1
+ import { CardsCarouselMetadata, CarouselCardShape } from './types';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * val-cards-carousel
5
5
  *
6
- * A horizontal carousel of recap cards with optional action header.
7
- * Combines HorizontalScroll for smooth horizontal scrolling with RecapCard
8
- * components for consistent card styling.
6
+ * A horizontal carousel of cards with optional action header.
7
+ * Combines HorizontalScroll for smooth horizontal scrolling with inline
8
+ * card rendering for consistent card styling.
9
9
  *
10
10
  * @example
11
11
  * <val-cards-carousel
12
12
  * [props]="{
13
13
  * header: { title: 'Featured Items', actionType: 'link', actionLabel: 'View All' },
14
14
  * cards: [
15
- * { title: 'Card 1', description: 'Description', href: '/item/1' },
16
- * { title: 'Card 2', description: 'Description', href: '/item/2' }
15
+ * { title: { title: 'Card 1' }, link: { text: 'Learn more', url: '/item/1' } },
16
+ * { title: { title: 'Card 2' }, link: { text: 'Learn more', url: '/item/2' } }
17
17
  * ]
18
18
  * }"
19
19
  * ></val-cards-carousel>
@@ -25,6 +25,12 @@ export declare class CardsCarouselComponent {
25
25
  * Carousel configuration with cards and optional header.
26
26
  */
27
27
  props: CardsCarouselMetadata;
28
+ /**
29
+ * Merges shape color with additional styles.
30
+ */
31
+ mergeShapeStyle(shape: CarouselCardShape): {
32
+ [key: string]: string | number;
33
+ };
28
34
  static ɵfac: i0.ɵɵFactoryDeclaration<CardsCarouselComponent, never>;
29
35
  static ɵcmp: i0.ɵɵComponentDeclaration<CardsCarouselComponent, "val-cards-carousel", never, { "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
30
36
  }
@@ -1,11 +1,40 @@
1
1
  import { ActionHeaderMetadata } from '../../molecules/action-header/types';
2
- import { RecapCardMetadata } from '../../molecules/recap-card/types';
2
+ import { LinkMetadata } from '../../molecules/link/types';
3
+ import { TitleBlockMetada } from '../../molecules/title-block/types';
4
+ /**
5
+ * Configuration for a decorative shape within a carousel card.
6
+ */
7
+ export interface CarouselCardShape {
8
+ /** Background color of the shape */
9
+ color: string;
10
+ /** Additional CSS styles (position, size, etc.) */
11
+ style?: {
12
+ [key: string]: string | number;
13
+ };
14
+ }
15
+ /**
16
+ * Configuration for a single card inside the carousel.
17
+ */
18
+ export interface CarouselCardMetadata {
19
+ /** Title block configuration */
20
+ title: TitleBlockMetada;
21
+ /** Link configuration */
22
+ link: LinkMetadata;
23
+ /** Decorative shapes to display behind content */
24
+ shapes?: CarouselCardShape[];
25
+ /** Background color of the card (Ionic color) */
26
+ color?: string;
27
+ /** Minimum height of the card. Default: '400px' */
28
+ minHeight?: string;
29
+ /** Width of the card. Default: '280px' */
30
+ width?: string;
31
+ }
3
32
  /**
4
33
  * Configuration for the cards carousel component.
5
34
  */
6
35
  export interface CardsCarouselMetadata {
7
- /** Array of recap cards to display */
8
- cards: RecapCardMetadata[];
36
+ /** Array of cards to display */
37
+ cards: CarouselCardMetadata[];
9
38
  /** Optional action header configuration */
10
39
  header?: ActionHeaderMetadata;
11
40
  }
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import { ViewWillEnter, ViewWillLeave } from '@ionic/angular/standalone';
3
+ import { ContainerSize } from '../../atoms/container/types';
3
4
  import { PageWrapperMetadata } from './types';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
@@ -71,6 +72,7 @@ export declare class PageWrapperComponent implements ViewWillEnter, ViewWillLeav
71
72
  }>;
72
73
  contentId: import("@angular/core").Signal<string>;
73
74
  propsFooter: import("@angular/core").Signal<import("valtech-components").CompanyFooterMetadata>;
75
+ contentMaxWidth: import("@angular/core").Signal<ContainerSize>;
74
76
  background: import("@angular/core").Signal<string>;
75
77
  ngOnInit(): void;
76
78
  ngOnDestroy(): void;
@@ -1,5 +1,6 @@
1
1
  import { HeaderMetadata } from '../../organisms/header/types';
2
2
  import { CompanyFooterMetadata } from '../../organisms/company-footer/types';
3
+ import { ContainerSize } from '../../atoms/container/types';
3
4
  /**
4
5
  * Configuration for the page wrapper component.
5
6
  */
@@ -16,4 +17,10 @@ export interface PageWrapperMetadata {
16
17
  contentId?: string;
17
18
  /** Enable scroll-to-top on route change */
18
19
  scrollToTopOnNavigate?: boolean;
20
+ /**
21
+ * Max-width cap for the routed content using design tokens.
22
+ * 'fluid' = no cap (default, backwards-compatible).
23
+ * Recommended: 'xl' for typical app pages.
24
+ */
25
+ contentMaxWidth?: ContainerSize;
19
26
  }
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 = "2.0.713";
5
+ export declare const VERSION = "2.0.715";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valtech-components",
3
- "version": "2.0.713",
3
+ "version": "2.0.715",
4
4
  "private": false,
5
5
  "bin": {
6
6
  "valtech-firebase-config": "./src/lib/services/firebase/scripts/generate-sw-config.js"
package/public-api.d.ts CHANGED
@@ -3,6 +3,8 @@ export * from './lib/components/atoms/avatar/avatar.component';
3
3
  export * from './lib/components/atoms/avatar/types';
4
4
  export * from './lib/components/atoms/box/box.component';
5
5
  export * from './lib/components/atoms/box/types';
6
+ export * from './lib/components/atoms/container/container.component';
7
+ export * from './lib/components/atoms/container/types';
6
8
  export * from './lib/components/atoms/button/button.component';
7
9
  export * from './lib/components/atoms/button/factory';
8
10
  export * from './lib/components/atoms/display/display.component';
@@ -137,22 +139,12 @@ export * from './lib/components/molecules/date-range-input/date-range-input.comp
137
139
  export * from './lib/components/molecules/date-range-input/types';
138
140
  export * from './lib/components/molecules/number-stepper/number-stepper.component';
139
141
  export * from './lib/components/molecules/number-stepper/types';
140
- export * from './lib/components/molecules/ticket-grid/ticket-grid.component';
141
- export * from './lib/components/molecules/ticket-grid/types';
142
142
  export * from './lib/components/molecules/share-buttons/share-buttons.component';
143
143
  export * from './lib/components/molecules/share-buttons/types';
144
- export * from './lib/components/molecules/winner-display/winner-display.component';
145
- export * from './lib/components/molecules/winner-display/types';
146
- export * from './lib/components/molecules/raffle-status-card/raffle-status-card.component';
147
- export * from './lib/components/molecules/raffle-status-card/types';
148
- export * from './lib/components/molecules/participant-card/participant-card.component';
149
- export * from './lib/components/molecules/participant-card/types';
150
144
  export * from './lib/components/molecules/glow-card/glow-card.component';
151
145
  export * from './lib/components/molecules/glow-card/types';
152
146
  export * from './lib/components/molecules/swipe-carousel/swipe-carousel.component';
153
147
  export * from './lib/components/molecules/swipe-carousel/types';
154
- export * from './lib/components/molecules/recap-card/recap-card.component';
155
- export * from './lib/components/molecules/recap-card/types';
156
148
  export * from './lib/components/molecules/testimonial-card/testimonial-card.component';
157
149
  export * from './lib/components/molecules/testimonial-card/types';
158
150
  export * from './lib/components/molecules/features-list/features-list.component';
@@ -218,7 +210,6 @@ export * from './lib/components/organisms/bottom-nav/bottom-nav.component';
218
210
  export * from './lib/components/organisms/bottom-nav/types';
219
211
  export * from './lib/components/organisms/avatar-upload/avatar-upload.component';
220
212
  export * from './lib/components/organisms/avatar-upload/types';
221
- export * from './lib/components/templates/layout/layout.component';
222
213
  export * from './lib/components/templates/simple/simple.component';
223
214
  export * from './lib/components/templates/simple/types';
224
215
  export * from './lib/components/templates/page-template/page-template.component';
@@ -83,6 +83,13 @@ $color-default-shadow: #121954;
83
83
  $color-default-placeholder: #afbacc;
84
84
 
85
85
  :root {
86
+ /* CONTAINER WIDTHS — design tokens consumibles desde apps */
87
+ --val-container-sm: 540px;
88
+ --val-container-md: 720px;
89
+ --val-container-lg: 880px;
90
+ --val-container-xl: 1100px;
91
+ --val-container-padding: 16px;
92
+
86
93
  --ion-color-primary: #7026df;
87
94
  --ion-color-primary-rgb: 112, 38, 223;
88
95
  --ion-color-primary-contrast: #ffffff;