valtech-components 4.0.508 → 4.0.510

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 +33 -67
  2. package/esm2022/lib/components/organisms/mini-games/christianity-game.component.mjs +363 -201
  3. package/esm2022/lib/components/organisms/mini-games/christianity-rules.mjs +19 -5
  4. package/esm2022/lib/components/organisms/mini-games/mini-game-callout.component.mjs +62 -0
  5. package/esm2022/lib/components/organisms/mini-games/mini-game-score-pop.component.mjs +63 -0
  6. package/esm2022/lib/components/organisms/mini-games/types.mjs +1 -1
  7. package/esm2022/lib/version.mjs +2 -2
  8. package/esm2022/mini-games/public-api.mjs +3 -1
  9. package/esm2022/public-api.mjs +3 -1
  10. package/fesm2022/valtech-components-mini-games.mjs +1 -0
  11. package/fesm2022/valtech-components-mini-games.mjs.map +1 -1
  12. package/fesm2022/valtech-components.mjs +533 -272
  13. package/fesm2022/valtech-components.mjs.map +1 -1
  14. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
  15. package/lib/components/molecules/load-more/load-more.component.d.ts +1 -1
  16. package/lib/components/organisms/article/article.component.d.ts +2 -2
  17. package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +6 -14
  18. package/lib/components/organisms/mini-games/christianity-game.component.d.ts +21 -0
  19. package/lib/components/organisms/mini-games/christianity-rules.d.ts +1 -0
  20. package/lib/components/organisms/mini-games/mini-game-callout.component.d.ts +19 -0
  21. package/lib/components/organisms/mini-games/mini-game-score-pop.component.d.ts +23 -0
  22. package/lib/components/organisms/mini-games/types.d.ts +1 -0
  23. package/lib/version.d.ts +1 -1
  24. package/mini-games/public-api.d.ts +4 -0
  25. package/package.json +1 -1
  26. package/public-api.d.ts +2 -0
@@ -43,7 +43,7 @@ export declare class RightsFooterComponent {
43
43
  /**
44
44
  * Computed helper for color prop in template.
45
45
  */
46
- propsColor: import("@angular/core").Signal<"medium" | "primary" | "secondary" | "tertiary" | "success" | "warning" | "danger" | "light" | "dark">;
46
+ propsColor: import("@angular/core").Signal<"success" | "warning" | "medium" | "primary" | "secondary" | "tertiary" | "danger" | "light" | "dark">;
47
47
  /**
48
48
  * Computed helper for withMargin prop in template.
49
49
  */
@@ -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<"small" | "large" | "default">;
29
+ readonly size: import("@angular/core").Signal<"default" | "small" | "large">;
30
30
  readonly threshold: import("@angular/core").Signal<string>;
31
31
  readonly label: import("@angular/core").Signal<string>;
32
32
  private readonly _pendingComplete;
@@ -94,8 +94,8 @@ 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?: "small" | "large" | "default";
98
- fill?: "outline" | "clear" | "solid" | "default";
97
+ size?: "default" | "small" | "large";
98
+ fill?: "default" | "outline" | "clear" | "solid";
99
99
  type: "button" | "submit" | "reset";
100
100
  token?: string;
101
101
  ref?: any;
@@ -1,5 +1,7 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
+ import { MiniGameCalloutMetadata } from './mini-game-callout.component';
4
+ import { MiniGameScorePopMetadata } from './mini-game-score-pop.component';
3
5
  import { ChessimalsAnimalType, ChessimalsBotDifficulty, ChessimalsBotProfile, ChessimalsBotProfileId, ChessimalsBoardSize, ChessimalsChallengeBot, ChessimalsChallengeRoundStats, ChessimalsChallengeRun, ChessimalsChallengeStats, ChessimalsGameState, ChessimalsHistoryEntry, ChessimalsLocalMode, ChessimalsMove, ChessimalsPiece, ChessimalsPlayerColor, ChessimalsPosition, ChessimalsStatsMode } from './types';
4
6
  import { RangeInputMetadata, RangeValue } from '../../molecules/range-input/types';
5
7
  import { ToggleInputMetadata } from '../../molecules/toggle-input/types';
@@ -41,13 +43,6 @@ interface ChessimalsChallengeTensionView {
41
43
  icon: string;
42
44
  critical: boolean;
43
45
  }
44
- interface ChessimalsPowerCalloutView {
45
- title: string;
46
- body: string;
47
- impact: string;
48
- animal: ChessimalsAnimalType;
49
- capture: boolean;
50
- }
51
46
  interface ChessimalsAchievementView {
52
47
  title: string;
53
48
  body: string;
@@ -74,10 +69,6 @@ interface ChessimalsGameScoreView {
74
69
  bestMove?: ChessimalsMoveScoreView;
75
70
  score: number;
76
71
  }
77
- interface ChessimalsScorePopView extends ChessimalsMoveScoreView {
78
- x: string;
79
- y: string;
80
- }
81
72
  export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
82
73
  private readonly i18n;
83
74
  private readonly audio;
@@ -123,7 +114,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
123
114
  readonly botProfiles: ChessimalsBotProfile[];
124
115
  readonly challengeLadder: ChessimalsChallengeBot[];
125
116
  readonly animals: ChessimalsAnimalView[];
126
- readonly valtechComponentsVersion = "4.0.508";
117
+ readonly valtechComponentsVersion = "4.0.510";
127
118
  readonly screen: import("@angular/core").WritableSignal<"home" | "challenge" | "path" | "game">;
128
119
  readonly selectedBoardSize: import("@angular/core").WritableSignal<ChessimalsBoardSize>;
129
120
  readonly selectedLocalMode: import("@angular/core").WritableSignal<ChessimalsLocalMode>;
@@ -151,10 +142,10 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
151
142
  readonly isBoardOrienting: import("@angular/core").WritableSignal<boolean>;
152
143
  readonly movingPiece: import("@angular/core").WritableSignal<ChessimalsMovingPieceView>;
153
144
  readonly moveEffect: import("@angular/core").WritableSignal<ChessimalsMoveEffectView>;
154
- readonly scorePop: import("@angular/core").WritableSignal<ChessimalsScorePopView>;
145
+ readonly scorePop: import("@angular/core").WritableSignal<MiniGameScorePopMetadata>;
155
146
  readonly powerUnlockPulse: import("@angular/core").WritableSignal<boolean>;
156
147
  readonly moveTrail: import("@angular/core").Signal<ChessimalsMoveTrailView>;
157
- readonly powerCallout: import("@angular/core").Signal<ChessimalsPowerCalloutView>;
148
+ readonly powerCallout: import("@angular/core").Signal<MiniGameCalloutMetadata>;
158
149
  readonly botThinking: import("@angular/core").WritableSignal<boolean>;
159
150
  readonly confirmAction: import("@angular/core").WritableSignal<ChessimalsConfirmAction>;
160
151
  private readonly confirmedAction;
@@ -459,6 +450,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
459
450
  private modeStatsResult;
460
451
  animalLabel(type: ChessimalsAnimalType): string;
461
452
  animalGlyph(type: ChessimalsAnimalType): string;
453
+ private powerCalloutTone;
462
454
  canReviewPrevious(): boolean;
463
455
  canReviewNext(): boolean;
464
456
  reviewPreviousMove(): void;
@@ -42,6 +42,13 @@ interface ChristianityImpactEvent {
42
42
  seat: ChristianitySeat;
43
43
  target: 'leader' | 'battle' | 'offerings';
44
44
  }
45
+ interface ChristianityCombatAnimation {
46
+ attackerInstanceId: string;
47
+ attackerSeat: ChristianitySeat;
48
+ targetInstanceId?: string;
49
+ targetSeat: ChristianitySeat;
50
+ target: 'leader' | 'character';
51
+ }
45
52
  type ChristianityGalleryTypeFilter = 'all' | ChristianityCardType;
46
53
  type ChristianityScreen = 'splash' | 'home' | 'table';
47
54
  type ChristianityCatalogLoadState = 'loading' | 'ready' | 'fallback';
@@ -53,6 +60,8 @@ export declare class ChristianityGameComponent {
53
60
  private botTurnTimer;
54
61
  private impactEventSequence;
55
62
  private readonly impactTimers;
63
+ private combatResolutionTimer;
64
+ private combatClearTimer;
56
65
  protected readonly game: import("@angular/core").WritableSignal<ChristianityGameState>;
57
66
  protected readonly screen: import("@angular/core").WritableSignal<ChristianityScreen>;
58
67
  protected readonly catalogLoadState: import("@angular/core").WritableSignal<ChristianityCatalogLoadState>;
@@ -62,6 +71,7 @@ export declare class ChristianityGameComponent {
62
71
  protected readonly selectedInfo: import("@angular/core").WritableSignal<ChristianityInfoPanel>;
63
72
  protected readonly previewTilt: import("@angular/core").WritableSignal<ChristianityPreviewTilt>;
64
73
  protected readonly selectedPreviewAbilityIndex: import("@angular/core").WritableSignal<number>;
74
+ protected readonly previewSlideDirection: import("@angular/core").WritableSignal<0 | 1 | -1>;
65
75
  protected readonly hoveredHandIndex: import("@angular/core").WritableSignal<number>;
66
76
  protected readonly draggingCardId: import("@angular/core").WritableSignal<string>;
67
77
  protected readonly draggingAttackerInstanceId: import("@angular/core").WritableSignal<string>;
@@ -70,6 +80,7 @@ export declare class ChristianityGameComponent {
70
80
  protected readonly showGallery: import("@angular/core").WritableSignal<boolean>;
71
81
  protected readonly offeringsSeat: import("@angular/core").WritableSignal<ChristianitySeat>;
72
82
  protected readonly impactEvents: import("@angular/core").WritableSignal<ChristianityImpactEvent[]>;
83
+ protected readonly combatAnimation: import("@angular/core").WritableSignal<ChristianityCombatAnimation>;
73
84
  protected readonly cardCatalog: import("@angular/core").WritableSignal<Record<string, ChristianityCardDefinition>>;
74
85
  protected readonly allCatalogCards: import("@angular/core").WritableSignal<ChristianityCardDefinition[]>;
75
86
  protected readonly catalogLoaded: import("@angular/core").WritableSignal<boolean>;
@@ -105,6 +116,9 @@ export declare class ChristianityGameComponent {
105
116
  protected readonly canNavigatePreview: import("@angular/core").Signal<boolean>;
106
117
  protected readonly previewPositionLabel: import("@angular/core").Signal<string>;
107
118
  protected readonly previewAbilities: import("@angular/core").Signal<ChristianityPreviewAbility[]>;
119
+ protected readonly showPreviewAbilityTabs: import("@angular/core").Signal<boolean>;
120
+ protected readonly canNavigatePreviewAbilities: import("@angular/core").Signal<boolean>;
121
+ protected readonly selectedPreviewAbilityPositionLabel: import("@angular/core").Signal<string>;
108
122
  protected readonly selectedPreviewAbility: import("@angular/core").Signal<ChristianityPreviewAbility>;
109
123
  protected readonly splashStatusText: import("@angular/core").Signal<string>;
110
124
  protected readonly startFeaturedCards: import("@angular/core").Signal<ChristianityCardDefinition[]>;
@@ -115,6 +129,7 @@ export declare class ChristianityGameComponent {
115
129
  protected readonly selectedCardDefinition: import("@angular/core").Signal<ChristianityCardDefinition>;
116
130
  protected readonly selectedPreviewCard: import("@angular/core").Signal<ChristianityCardDefinition>;
117
131
  protected readonly selectedPreviewRenderCard: import("@angular/core").Signal<ChristianityCardRenderModel>;
132
+ protected selectedPreviewNeighborRenderCard(direction: -1 | 1): ChristianityCardRenderModel | null;
118
133
  protected readonly previewRule: import("@angular/core").Signal<ChristianityPreviewRule>;
119
134
  protected readonly statusText: import("@angular/core").Signal<string>;
120
135
  constructor();
@@ -222,6 +237,11 @@ export declare class ChristianityGameComponent {
222
237
  protected resetPreviewTilt(): void;
223
238
  private pushImpactEvent;
224
239
  private pushImpactEvents;
240
+ protected isCombatAttacker(card: ChristianityCharacterInstance): boolean;
241
+ protected isCombatCharacterTarget(card: ChristianityCharacterInstance): boolean;
242
+ protected isCombatLeaderTarget(seat: ChristianitySeat): boolean;
243
+ private startCombatAnimation;
244
+ private clearCombatTimers;
225
245
  private triggerHistoryPulse;
226
246
  private clearBotTurn;
227
247
  private scheduleBotTurnIfNeeded;
@@ -234,6 +254,7 @@ export declare class ChristianityGameComponent {
234
254
  protected canUseOfferingAbility(offering: ChristianityOfferingInstance, seat: ChristianitySeat): boolean;
235
255
  protected useOfferingAbility(offering: ChristianityOfferingInstance, seat: ChristianitySeat): void;
236
256
  protected selectPreviewAbility(index: number): void;
257
+ protected navigatePreviewAbility(direction: -1 | 1): void;
237
258
  protected useSelectedPreviewAbility(): void;
238
259
  private selectedPreviewOffering;
239
260
  private canUsePreviewAbility;
@@ -28,6 +28,7 @@ export interface ChristianityOfferingAbilityResult {
28
28
  game: ChristianityGameState;
29
29
  resolved: boolean;
30
30
  leaderDamage: number;
31
+ reserveGain: number;
31
32
  spentOfferings: number;
32
33
  log: string[];
33
34
  }
@@ -0,0 +1,19 @@
1
+ import * as i0 from "@angular/core";
2
+ export type MiniGameCalloutVariant = 'default' | 'capture' | 'success' | 'warning';
3
+ export interface MiniGameCalloutMetadata {
4
+ title: string;
5
+ body?: string;
6
+ impact?: string;
7
+ icon?: string;
8
+ toneRgb?: string;
9
+ durationMs?: number;
10
+ variant?: MiniGameCalloutVariant;
11
+ ariaLive?: 'off' | 'polite' | 'assertive';
12
+ }
13
+ export declare class MiniGameCalloutComponent {
14
+ readonly props: import("@angular/core").InputSignal<MiniGameCalloutMetadata>;
15
+ protected readonly toneRgb: import("@angular/core").Signal<string>;
16
+ protected readonly duration: import("@angular/core").Signal<string>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<MiniGameCalloutComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<MiniGameCalloutComponent, "val-mini-game-callout", never, { "props": { "alias": "props"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
19
+ }
@@ -0,0 +1,23 @@
1
+ import * as i0 from "@angular/core";
2
+ export type MiniGameScorePopVariant = 'score' | 'capture' | 'combo' | 'bonus' | 'penalty';
3
+ export interface MiniGameScorePopMetadata {
4
+ score: string | number;
5
+ label: string;
6
+ detail?: string;
7
+ x: string;
8
+ y: string;
9
+ toneRgb?: string;
10
+ comboToneRgb?: string;
11
+ durationMs?: number;
12
+ variant?: MiniGameScorePopVariant;
13
+ ariaLive?: 'off' | 'polite' | 'assertive';
14
+ }
15
+ export declare class MiniGameScorePopComponent {
16
+ readonly props: import("@angular/core").InputSignal<MiniGameScorePopMetadata>;
17
+ protected readonly toneRgb: import("@angular/core").Signal<string>;
18
+ protected readonly comboToneRgb: import("@angular/core").Signal<string>;
19
+ protected readonly duration: import("@angular/core").Signal<string>;
20
+ protected readonly scoreLabel: import("@angular/core").Signal<string>;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<MiniGameScorePopComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<MiniGameScorePopComponent, "val-mini-game-score-pop", never, { "props": { "alias": "props"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
23
+ }
@@ -366,6 +366,7 @@ export interface ChristianityPlayerState {
366
366
  leaderHp: number;
367
367
  leaderMaxHp: number;
368
368
  offerings: ChristianityOfferingInstance[];
369
+ temporaryOfferingReserve?: number;
369
370
  offeringPlayedThisTurn: boolean;
370
371
  hand?: string[];
371
372
  handCount?: number;
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.508";
5
+ export declare const VERSION = "4.0.510";
@@ -1,5 +1,9 @@
1
1
  import { MiniGameDefinition, PageContentMetadata } from 'valtech-components';
2
2
  import * as i0 from "@angular/core";
3
+ export { MiniGameCalloutComponent } from 'valtech-components';
4
+ export type { MiniGameCalloutMetadata, MiniGameCalloutVariant } from 'valtech-components';
5
+ export { MiniGameScorePopComponent } from 'valtech-components';
6
+ export type { MiniGameScorePopMetadata, MiniGameScorePopVariant } from 'valtech-components';
3
7
  export declare class MiniGamesPageComponent {
4
8
  private readonly router;
5
9
  private readonly i18n;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valtech-components",
3
- "version": "4.0.508",
3
+ "version": "4.0.510",
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
@@ -345,6 +345,8 @@ export * from './lib/components/organisms/mini-games/christianity-rules';
345
345
  export * from './lib/components/organisms/mini-games/christianity-game.component';
346
346
  export * from './lib/components/organisms/mini-games/bubble-blitz-game.component';
347
347
  export * from './lib/components/organisms/mini-games/memory-game.component';
348
+ export * from './lib/components/organisms/mini-games/mini-game-callout.component';
349
+ export * from './lib/components/organisms/mini-games/mini-game-score-pop.component';
348
350
  export * from './lib/components/organisms/mini-games/mini-game-player-profile.service';
349
351
  export * from './lib/components/organisms/mini-games/mini-games-menu.component';
350
352
  export * from './lib/components/organisms/mini-games/retro-audio.service';