valtech-components 4.0.414 → 4.0.416

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 (26) hide show
  1. package/esm2022/lib/components/organisms/mini-games/chessimals-game.component.mjs +634 -30
  2. package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +127 -1
  3. package/esm2022/lib/components/organisms/mini-games/retro-audio.service.mjs +20 -9
  4. package/esm2022/lib/version.mjs +2 -2
  5. package/fesm2022/valtech-components.mjs +778 -38
  6. package/fesm2022/valtech-components.mjs.map +1 -1
  7. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +2 -2
  8. package/lib/components/atoms/text/text.component.d.ts +1 -1
  9. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
  10. package/lib/components/molecules/features-list/features-list.component.d.ts +2 -2
  11. package/lib/components/molecules/load-more/load-more.component.d.ts +1 -1
  12. package/lib/components/molecules/operation-reference/operation-reference.component.d.ts +1 -1
  13. package/lib/components/molecules/phone-display/phone-display.component.d.ts +1 -1
  14. package/lib/components/organisms/article/article.component.d.ts +7 -7
  15. package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +56 -2
  16. package/lib/components/organisms/mini-games/retro-audio.service.d.ts +2 -0
  17. package/lib/version.d.ts +1 -1
  18. package/package.json +1 -1
  19. package/src/lib/assets/games/chessimals/Game.mp3 +0 -0
  20. package/src/lib/assets/games/chessimals/bull.wav +0 -0
  21. package/src/lib/assets/games/chessimals/eagle-cry.wav +0 -0
  22. package/src/lib/assets/games/chessimals/kangaroo-jump.mp3 +0 -0
  23. package/src/lib/assets/games/chessimals/lion-roar.wav +0 -0
  24. package/src/lib/assets/games/chessimals/main-menu.mp3 +0 -0
  25. package/src/lib/assets/games/chessimals/tada.mp3 +0 -0
  26. package/src/lib/assets/games/chessimals/you-lose.mp3 +0 -0
@@ -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<"center" | "left" | "right">;
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<"medium" | "primary" | "secondary" | "tertiary" | "success" | "warning" | "danger" | "light" | "dark">;
47
47
  /**
48
48
  * Computed helper for withMargin prop in template.
49
49
  */
@@ -11,7 +11,7 @@ export declare class TextComponent {
11
11
  */
12
12
  displayContent: import("@angular/core").Signal<string>;
13
13
  propsColor: import("@angular/core").Signal<import("@ionic/core").Color>;
14
- propsSize: import("@angular/core").Signal<"small" | "medium" | "large" | "xlarge">;
14
+ propsSize: import("@angular/core").Signal<"medium" | "small" | "large" | "xlarge">;
15
15
  propsBold: import("@angular/core").Signal<boolean>;
16
16
  propsProcessLinks: import("@angular/core").Signal<boolean>;
17
17
  propsAllowPartialBold: import("@angular/core").Signal<boolean>;
@@ -38,7 +38,7 @@ export declare class UserAvatarComponent {
38
38
  readonly imageUrl: import("@angular/core").Signal<string>;
39
39
  /** Iniciales — 1-2 chars derivados de name (preferred) o email prefix. */
40
40
  readonly initials: import("@angular/core").Signal<string>;
41
- readonly sizeClass: import("@angular/core").Signal<"small" | "medium" | "large" | "xlarge" | "xsmall">;
41
+ readonly sizeClass: import("@angular/core").Signal<"medium" | "xsmall" | "small" | "large" | "xlarge">;
42
42
  readonly shapeClass: import("@angular/core").Signal<"circle" | "square">;
43
43
  /** Background — explicito o derivado deterministicamente del user. */
44
44
  readonly bgColor: import("@angular/core").Signal<string>;
@@ -41,8 +41,8 @@ export declare class FeaturesListComponent {
41
41
  iconColor: string;
42
42
  iconSize: number;
43
43
  mode: "horizontal" | "vertical";
44
- gap: "small" | "medium" | "large";
45
- alignment: "center" | "start";
44
+ gap: "medium" | "small" | "large";
45
+ alignment: "start" | "center";
46
46
  imageShape: "circle" | "square";
47
47
  maxVisible: number;
48
48
  showMoreLabel?: string;
@@ -26,7 +26,7 @@ export declare class LoadMoreComponent {
26
26
  readonly color: import("@angular/core").Signal<string>;
27
27
  readonly fill: import("@angular/core").Signal<string>;
28
28
  readonly shape: import("@angular/core").Signal<string>;
29
- readonly size: import("@angular/core").Signal<"default" | "small" | "large">;
29
+ readonly size: import("@angular/core").Signal<"small" | "large" | "default">;
30
30
  readonly threshold: import("@angular/core").Signal<string>;
31
31
  readonly label: import("@angular/core").Signal<string>;
32
32
  private readonly _pendingComplete;
@@ -6,7 +6,7 @@ export declare class OperationReferenceComponent {
6
6
  protected label: import("@angular/core").Signal<string>;
7
7
  protected copiedLabel: import("@angular/core").Signal<string>;
8
8
  protected copyAriaLabel: import("@angular/core").Signal<string>;
9
- protected align: import("@angular/core").Signal<"center" | "start" | "end">;
9
+ protected align: import("@angular/core").Signal<"start" | "end" | "center">;
10
10
  protected copyValue(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<OperationReferenceComponent, never>;
12
12
  static ɵcmp: i0.ɵɵComponentDeclaration<OperationReferenceComponent, "val-operation-reference", never, { "props": { "alias": "props"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -6,7 +6,7 @@ export declare class PhoneDisplayComponent {
6
6
  props: PhoneDisplayMetadata;
7
7
  onClick: EventEmitter<string>;
8
8
  protected rawPhone: import("@angular/core").Signal<string>;
9
- protected mode: import("@angular/core").Signal<"link" | "text" | "button">;
9
+ protected mode: import("@angular/core").Signal<"button" | "link" | "text">;
10
10
  protected formatted: import("@angular/core").Signal<string>;
11
11
  protected href: import("@angular/core").Signal<string>;
12
12
  protected ariaLabel: import("@angular/core").Signal<string>;
@@ -45,7 +45,7 @@ export declare class ArticleComponent implements OnInit {
45
45
  getVideoElement(element: ArticleElement): ArticleVideoElement;
46
46
  getCustomElement(element: ArticleElement): ArticleCustomElement;
47
47
  getQuoteTextProps(element: ArticleElement): {
48
- size: "small" | "medium" | "large" | "xlarge";
48
+ size: "medium" | "small" | "large" | "xlarge";
49
49
  color: import("@ionic/core").Color;
50
50
  content?: string;
51
51
  bold: boolean;
@@ -57,11 +57,11 @@ 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): {
64
- size: "small" | "medium" | "large" | "xlarge";
64
+ size: "medium" | "small" | "large" | "xlarge";
65
65
  color: import("@ionic/core").Color;
66
66
  content?: string;
67
67
  bold: boolean;
@@ -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[];
@@ -94,9 +94,9 @@ export declare class ArticleComponent implements OnInit {
94
94
  contentInterpolation?: Record<string, string | number>;
95
95
  icon?: import("valtech-components").IconMetada;
96
96
  shape?: "round";
97
- size?: "default" | "small" | "large";
98
- fill?: "default" | "clear" | "outline" | "solid";
99
- type: "reset" | "submit" | "button";
97
+ size?: "small" | "large" | "default";
98
+ fill?: "outline" | "clear" | "solid" | "default";
99
+ type: "button" | "submit" | "reset";
100
100
  token?: string;
101
101
  ref?: any;
102
102
  handler?: (value: any) => any;
@@ -64,16 +64,20 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
64
64
  readonly botDifficulties: ChessimalsBotDifficulty[];
65
65
  readonly botProfiles: ChessimalsBotProfile[];
66
66
  readonly animals: ChessimalsAnimalView[];
67
+ readonly valtechComponentsVersion = "4.0.416";
67
68
  readonly screen: import("@angular/core").WritableSignal<"home" | "game">;
68
69
  readonly selectedBoardSize: import("@angular/core").WritableSignal<ChessimalsBoardSize>;
69
70
  readonly selectedLocalMode: import("@angular/core").WritableSignal<ChessimalsLocalMode>;
70
71
  readonly selectedBotDifficulty: import("@angular/core").WritableSignal<ChessimalsBotDifficulty>;
71
72
  readonly selectedBotProfileId: import("@angular/core").WritableSignal<ChessimalsBotProfileId>;
73
+ readonly gameBotProfileId: import("@angular/core").WritableSignal<ChessimalsBotProfileId>;
72
74
  readonly game: import("@angular/core").WritableSignal<ChessimalsGameState>;
73
75
  readonly selectedPieceId: import("@angular/core").WritableSignal<string>;
74
76
  readonly selectedAnimal: import("@angular/core").WritableSignal<ChessimalsAnimalType>;
75
77
  readonly isRulesModalOpen: import("@angular/core").WritableSignal<boolean>;
76
78
  readonly isSettingsModalOpen: import("@angular/core").WritableSignal<boolean>;
79
+ readonly isAboutModalOpen: import("@angular/core").WritableSignal<boolean>;
80
+ readonly tutorialMode: import("@angular/core").WritableSignal<boolean>;
77
81
  readonly isBoardOrienting: import("@angular/core").WritableSignal<boolean>;
78
82
  readonly movingPiece: import("@angular/core").WritableSignal<ChessimalsMovingPieceView>;
79
83
  readonly moveEffect: import("@angular/core").WritableSignal<ChessimalsMoveEffectView>;
@@ -83,13 +87,14 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
83
87
  readonly confirmAction: import("@angular/core").WritableSignal<ChessimalsConfirmAction>;
84
88
  readonly onlineJoinCode: import("@angular/core").WritableSignal<string>;
85
89
  readonly onlineLoading: import("@angular/core").WritableSignal<boolean>;
86
- readonly onlineAction: import("@angular/core").WritableSignal<"join" | "create" | "accept" | "reject">;
90
+ readonly onlineAction: import("@angular/core").WritableSignal<"create" | "join" | "accept" | "reject">;
87
91
  readonly onlineError: import("@angular/core").WritableSignal<string>;
88
92
  readonly onlineUid: import("@angular/core").WritableSignal<string>;
89
93
  readonly onlineHistory: import("@angular/core").WritableSignal<ChessimalsHistoryEntry[]>;
90
94
  readonly resumeSplashVisible: import("@angular/core").WritableSignal<boolean>;
91
95
  readonly rematchLoading: import("@angular/core").WritableSignal<boolean>;
92
96
  readonly moveSyncing: import("@angular/core").WritableSignal<boolean>;
97
+ readonly onlineConnectionState: import("@angular/core").WritableSignal<"idle" | "connecting" | "live" | "error">;
93
98
  readonly reviewIndex: import("@angular/core").WritableSignal<number>;
94
99
  readonly loggedInUser: import("@angular/core").Signal<import("valtech-components").AuthUser>;
95
100
  readonly localPlayerProfile: import("@angular/core").Signal<import("./types").MiniGamePlayerProfile>;
@@ -106,6 +111,8 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
106
111
  readonly musicVolumeProps: import("@angular/core").Signal<RangeInputMetadata>;
107
112
  readonly sfxVolumeProps: import("@angular/core").Signal<RangeInputMetadata>;
108
113
  readonly availableBotProfiles: import("@angular/core").Signal<ChessimalsBotProfile[]>;
114
+ readonly selectedBotProfile: import("@angular/core").Signal<ChessimalsBotProfile>;
115
+ readonly gameBotProfile: import("@angular/core").Signal<ChessimalsBotProfile>;
109
116
  set onlineGameId(value: string | null | undefined);
110
117
  miniGamesRoute: string;
111
118
  projectionMode: boolean;
@@ -120,25 +127,56 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
120
127
  readonly legalMoves: import("@angular/core").Signal<ChessimalsMove[]>;
121
128
  readonly legalMoveKeys: import("@angular/core").Signal<Set<string>>;
122
129
  readonly captureMoveKeys: import("@angular/core").Signal<Set<string>>;
130
+ readonly winningMoveKeys: import("@angular/core").Signal<Set<string>>;
131
+ readonly captureReadyPieceIds: import("@angular/core").Signal<Set<string>>;
132
+ readonly threatenedPieceIds: import("@angular/core").Signal<Set<string>>;
133
+ readonly isActionableTurn: import("@angular/core").Signal<boolean>;
134
+ readonly isWaitingForTurn: import("@angular/core").Signal<boolean>;
123
135
  readonly boardRows: import("@angular/core").Signal<number[]>;
124
136
  readonly boardCols: import("@angular/core").Signal<number[]>;
125
137
  readonly displayRows: import("@angular/core").Signal<number[]>;
126
138
  readonly displayCols: import("@angular/core").Signal<number[]>;
127
139
  readonly boardOrientationColor: import("@angular/core").Signal<ChessimalsPlayerColor>;
128
- readonly onlineRole: import("@angular/core").Signal<"waiting" | "pending" | ChessimalsPlayerColor | "spectator">;
140
+ readonly onlineRole: import("@angular/core").Signal<ChessimalsPlayerColor | "waiting" | "pending" | "spectator">;
129
141
  readonly canPlayCurrentTurn: import("@angular/core").Signal<boolean>;
130
142
  readonly canControlCurrentGame: import("@angular/core").Signal<boolean>;
131
143
  readonly rematchState: import("@angular/core").Signal<ChessimalsRematchState>;
132
144
  readonly rematchActionLabel: import("@angular/core").Signal<string>;
145
+ readonly shouldShowOnlineStatus: import("@angular/core").Signal<boolean>;
146
+ readonly onlineStatusTitle: import("@angular/core").Signal<string>;
147
+ readonly onlineStatusBody: import("@angular/core").Signal<string>;
148
+ readonly tutorialStepIndex: import("@angular/core").Signal<number>;
149
+ readonly tutorialProgressLabel: import("@angular/core").Signal<string>;
150
+ readonly tutorialTitle: import("@angular/core").Signal<string>;
151
+ readonly tutorialBody: import("@angular/core").Signal<string>;
133
152
  readonly currentTurnTitle: import("@angular/core").Signal<string>;
134
153
  readonly winTitle: import("@angular/core").Signal<string>;
135
154
  readonly winBody: import("@angular/core").Signal<string>;
136
155
  readonly winReasonLabel: import("@angular/core").Signal<string>;
137
156
  readonly movesSummary: import("@angular/core").Signal<string>;
157
+ readonly resultCaptures: import("@angular/core").Signal<number>;
158
+ readonly resultPowers: import("@angular/core").Signal<ChessimalsAnimalType[]>;
159
+ readonly resultStats: import("@angular/core").Signal<{
160
+ label: string;
161
+ value: string;
162
+ }[]>;
163
+ readonly resultPowersLabel: import("@angular/core").Signal<string>;
164
+ readonly shouldShowBotReport: import("@angular/core").Signal<boolean>;
165
+ readonly botReportTitle: import("@angular/core").Signal<string>;
166
+ readonly botReportBody: import("@angular/core").Signal<string>;
167
+ readonly seriesGames: import("@angular/core").Signal<ChessimalsHistoryEntry[]>;
168
+ readonly seriesScore: import("@angular/core").Signal<{
169
+ mine: number;
170
+ rival: number;
171
+ total: number;
172
+ }>;
173
+ readonly seriesSummary: import("@angular/core").Signal<string>;
174
+ readonly lastSeriesWinnerLabel: import("@angular/core").Signal<string>;
138
175
  readonly confirmTitle: import("@angular/core").Signal<string>;
139
176
  readonly confirmBody: import("@angular/core").Signal<string>;
140
177
  readonly confirmActions: import("@angular/core").Signal<ButtonMetadata[]>;
141
178
  readonly rulesActions: import("@angular/core").Signal<ButtonMetadata[]>;
179
+ readonly aboutActions: import("@angular/core").Signal<ButtonMetadata[]>;
142
180
  readonly actionHint: import("@angular/core").Signal<string>;
143
181
  constructor();
144
182
  ngOnDestroy(): void;
@@ -147,10 +185,12 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
147
185
  private shortUserId;
148
186
  private rangeValueToNumber;
149
187
  startGame(): void;
188
+ startTutorial(): void;
150
189
  createOnlineGame(): Promise<void>;
151
190
  joinOnlineGameByCode(): Promise<void>;
152
191
  openOnlineGame(gameId: string): Promise<void>;
153
192
  restartGame(): void;
193
+ exitTutorial(): void;
154
194
  resetToModeSetup(): void;
155
195
  resetToGamesMenu(): void;
156
196
  private resetFinishedLocalGameForNextVisit;
@@ -165,8 +205,14 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
165
205
  closeRulesModal(): void;
166
206
  openSettingsModal(): void;
167
207
  closeSettingsModal(): void;
208
+ openAboutModal(): void;
209
+ closeAboutModal(): void;
168
210
  setMusicVolume(value: number | RangeValue): void;
169
211
  setSfxVolume(value: number | RangeValue): void;
212
+ private tutorialExpectedMove;
213
+ isPowerCardBlockedByTutorial(animal: ChessimalsAnimalType): boolean;
214
+ private createTutorialGame;
215
+ private basicMovesForColor;
170
216
  selectCell(position: ChessimalsPosition): void;
171
217
  private animateMove;
172
218
  private applyAnimatedMove;
@@ -194,6 +240,9 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
194
240
  isSelectedCell(row: number, col: number): boolean;
195
241
  isLegalCell(row: number, col: number): boolean;
196
242
  isCaptureCell(row: number, col: number): boolean;
243
+ isThreatenedCell(row: number, col: number): boolean;
244
+ isCaptureReadyCell(row: number, col: number): boolean;
245
+ isWinningCell(row: number, col: number): boolean;
197
246
  isLastMoveCell(row: number, col: number): boolean;
198
247
  isMovingSourceCell(row: number, col: number): boolean;
199
248
  isMoveEffectCell(row: number, col: number, animal?: ChessimalsAnimalType): boolean;
@@ -204,6 +253,8 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
204
253
  showRankLabel(col: number): boolean;
205
254
  showFileLabel(row: number): boolean;
206
255
  playerLabel(color: ChessimalsPlayerColor): string;
256
+ turnStateLabel(): string;
257
+ turnStateBody(): string;
207
258
  winnerDisplayName(): string;
208
259
  winnerSideLabel(): string;
209
260
  winnerInitials(): string;
@@ -212,6 +263,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
212
263
  isCurrentPlayerDefeat(): boolean;
213
264
  private playerDisplayName;
214
265
  private rematchOpponent;
266
+ private currentOpponentUid;
215
267
  modeChipLabel(): string;
216
268
  turnTitle(): string;
217
269
  normalizeGameId(value: string): string;
@@ -245,6 +297,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
245
297
  botDifficultyLabel(difficulty: ChessimalsBotDifficulty): string;
246
298
  botProfileLabel(profile: ChessimalsBotProfile): string;
247
299
  botProfileDescription(profile: ChessimalsBotProfile): string;
300
+ botProfileTendency(profile: ChessimalsBotProfile): string;
248
301
  animalLabel(type: ChessimalsAnimalType): string;
249
302
  canReviewPrevious(): boolean;
250
303
  canReviewNext(): boolean;
@@ -255,6 +308,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
255
308
  private displayRowIndex;
256
309
  private displayColIndex;
257
310
  private watchOnlineGame;
311
+ private onlineOpenErrorMessage;
258
312
  private applyOnlineGameSnapshot;
259
313
  private miniGamesBaseRoute;
260
314
  private chessimalsGameRoute;
@@ -79,6 +79,8 @@ export declare class RetroAudioService {
79
79
  private stopSampleMusic;
80
80
  private applySampleMusicVolume;
81
81
  private sampleMusicVolume;
82
+ private sampleVolume;
83
+ private applyActiveSampleVolumes;
82
84
  private connectSampleMusic;
83
85
  private disconnectSampleMusicGraph;
84
86
  private tone;
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.414";
5
+ export declare const VERSION = "4.0.416";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valtech-components",
3
- "version": "4.0.414",
3
+ "version": "4.0.416",
4
4
  "private": false,
5
5
  "bin": {
6
6
  "valtech-firebase-config": "./src/lib/services/firebase/scripts/generate-sw-config.js"