@eric-emg/symphiq-components 1.2.104 → 1.2.106

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.
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _jebgem_model from '@jebgem/model';
2
- import { InsightBlockInterface, PerformanceMetricInterface, AiChartInterface, ProfileItemInterface, ViewModeEnum, ProfileAnalysisRecommendationActionStepInterface, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ProfileSectionInterface, ProfileSubsectionInterface, ProfileInterface, BreakdownMetricInterface, UserInterface, FunnelAnalysisInterface, OverallAssessmentInterface, ProfileAnalysisRecommendationInterface, ProfileItemTypeEnum, IconObjectInterface as IconObjectInterface$1, NapkinVisualInterface, HierarchyDataInterface, ChartTypeEnum, IconSourceEnum } from '@jebgem/model';
2
+ import { ProfileItemInterface, ViewModeEnum, GoalV3Interface, ObjectiveV3Interface, StrategyV3Interface, OperationalCategoryInterface, CategoryStrengthInterface, CategoryGapInterface, CategoryOpportunityInterface, InsightBlockInterface, ProfileAnalysisRecommendationInterface, PerformanceMetricInterface, KeyStrengthInterface, CriticalGapInterface, AiChartInterface, ProfileAnalysisRecommendationActionStepInterface, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ProfileSectionInterface, ProfileSubsectionInterface, ProfileInterface, BreakdownMetricInterface, UserInterface, FunnelAnalysisInterface, PerformanceOverviewStructuredV3Interface, OverallAssessmentInterface, ProfileItemTypeEnum, IconObjectInterface as IconObjectInterface$1, NapkinVisualInterface, HierarchyDataInterface, ProfileAnalysisInterface, ProfileAnalysisTypeEnum, IconSourceEnum, ProfileAnalysisSectionV3Interface, ExecutiveSummaryInterface, ChartTypeEnum } from '@jebgem/model';
3
3
  export * from '@jebgem/model';
4
4
  import * as _angular_core from '@angular/core';
5
5
  import { AfterViewInit, ElementRef, WritableSignal, OnInit, OnDestroy, OnChanges, SimpleChanges, Renderer2, EventEmitter } from '@angular/core';
@@ -8,6 +8,7 @@ import { Observable } from 'rxjs';
8
8
  import { HttpClient } from '@angular/common/http';
9
9
  import * as _angular_platform_browser from '@angular/platform-browser';
10
10
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
11
+ import * as _jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface from '@jebgem/model/lib/funnel-analysis/performance-overview-structured-v3.interface';
11
12
 
12
13
  interface FunnelMetricOrder {
13
14
  metric: string;
@@ -39,17 +40,179 @@ interface VisualizationData {
39
40
  title: string;
40
41
  data: unknown;
41
42
  }
43
+ interface FunnelStrengthInterface {
44
+ id: string;
45
+ title: string;
46
+ description: string;
47
+ relatedMetrics: string[];
48
+ category: string;
49
+ priority: number;
50
+ businessContext: string;
51
+ impactScore: number;
52
+ quantifiedValue: string;
53
+ }
54
+ interface FunnelWeaknessInterface {
55
+ id: string;
56
+ title: string;
57
+ description: string;
58
+ relatedMetrics: string[];
59
+ category: string;
60
+ priority: number;
61
+ businessContext: string;
62
+ impactScore: number;
63
+ quantifiedValue: string;
64
+ severityLevel: 'CRITICAL' | 'HIGH' | 'MEDIUM';
65
+ suggestedActions: string[];
66
+ }
67
+ interface ItemDetailModalData {
68
+ item: ProfileItemInterface;
69
+ viewMode: ViewModeEnum;
70
+ itemType?: string;
71
+ sectionTitle?: string;
72
+ subsectionTitle?: string;
73
+ isCompactMode?: boolean;
74
+ fromProfileAnalysis?: boolean;
75
+ }
76
+ interface GoalDetailModalData {
77
+ goal: GoalV3Interface;
78
+ viewMode: ViewModeEnum;
79
+ sourceCategory?: string;
80
+ sourceGapTitle?: string;
81
+ }
82
+ interface GoalObjectivesModalData {
83
+ goal: GoalV3Interface;
84
+ viewMode: ViewModeEnum;
85
+ }
86
+ interface ObjectiveStrategiesModalData {
87
+ objective: ObjectiveV3Interface;
88
+ goalTitle?: string;
89
+ viewMode: ViewModeEnum;
90
+ }
91
+ interface StrategyRecommendationsModalData {
92
+ strategy: StrategyV3Interface;
93
+ objectiveTitle?: string;
94
+ goalTitle?: string;
95
+ viewMode: ViewModeEnum;
96
+ }
97
+ interface CategoryDetailModalData {
98
+ category: OperationalCategoryInterface;
99
+ viewMode: ViewModeEnum;
100
+ scrollToSection?: 'strengths' | 'gaps' | 'opportunities';
101
+ }
102
+ interface StrengthDetailModalData {
103
+ strength: CategoryStrengthInterface;
104
+ categoryTitle: string;
105
+ viewMode: ViewModeEnum;
106
+ }
107
+ interface GapDetailModalData {
108
+ gap: CategoryGapInterface;
109
+ categoryTitle: string;
110
+ viewMode: ViewModeEnum;
111
+ }
112
+ interface OpportunityDetailModalData {
113
+ opportunity: CategoryOpportunityInterface;
114
+ categoryTitle: string;
115
+ viewMode: ViewModeEnum;
116
+ }
117
+ interface GoalInsightsListModalData {
118
+ insights: InsightBlockInterface[];
119
+ goalContext: {
120
+ title: string;
121
+ description: string;
122
+ icon: string;
123
+ };
124
+ viewMode?: ViewModeEnum;
125
+ sourceCategory?: string;
126
+ sourceGapTitle?: string;
127
+ }
128
+ interface GoalBusinessInsightsListModalData {
129
+ businessInsights: ProfileAnalysisRecommendationInterface[];
130
+ goalContext: {
131
+ title: string;
132
+ description: string;
133
+ icon: string;
134
+ };
135
+ viewMode: ViewModeEnum;
136
+ sourceCategory?: string;
137
+ sourceGapTitle?: string;
138
+ }
139
+ interface MetricsListModalData {
140
+ metrics: PerformanceMetricInterface[];
141
+ goalContext?: {
142
+ title: string;
143
+ description: string;
144
+ icon?: string;
145
+ businessContext?: string;
146
+ priority?: number;
147
+ };
148
+ insightContext?: {
149
+ title: string;
150
+ description: string;
151
+ businessContext: string;
152
+ priority: number;
153
+ };
154
+ recommendationContext?: {
155
+ title: string;
156
+ description: string;
157
+ };
158
+ directlyAffectedMetricId?: string;
159
+ indirectlyAffectedMetricIds?: string[];
160
+ viewMode?: ViewModeEnum;
161
+ sourceCategory?: string;
162
+ sourceGapTitle?: string;
163
+ goalTitle?: string;
164
+ objectiveTitle?: string;
165
+ strategyTitle?: string;
166
+ }
167
+ interface BusinessInsightDetailModalData {
168
+ recommendation: ProfileAnalysisRecommendationInterface;
169
+ goalContext: {
170
+ title: string;
171
+ description: string;
172
+ icon: string;
173
+ };
174
+ viewMode: ViewModeEnum;
175
+ }
176
+ interface KeyStrengthsListModalData {
177
+ keyStrengths: KeyStrengthInterface[];
178
+ viewMode: ViewModeEnum;
179
+ }
180
+ interface CriticalGapsListModalData {
181
+ criticalGaps: CriticalGapInterface[];
182
+ viewMode: ViewModeEnum;
183
+ }
184
+ interface KeyStrengthDetailModalData {
185
+ strength: KeyStrengthInterface;
186
+ viewMode: ViewModeEnum;
187
+ }
188
+ interface CriticalGapDetailModalData {
189
+ gap: CriticalGapInterface;
190
+ viewMode: ViewModeEnum;
191
+ categoryTitle?: string;
192
+ }
193
+ interface FunnelStrengthsListModalData {
194
+ strengths: FunnelStrengthInterface[];
195
+ count: number;
196
+ isLightMode: boolean;
197
+ }
198
+ interface FunnelWeaknessesListModalData {
199
+ weaknesses: FunnelWeaknessInterface[];
200
+ count: number;
201
+ isLightMode: boolean;
202
+ }
203
+ interface FunnelStrengthDetailModalData {
204
+ strength: FunnelStrengthInterface;
205
+ totalCount: number;
206
+ isLightMode: boolean;
207
+ }
208
+ interface FunnelWeaknessDetailModalData {
209
+ weakness: FunnelWeaknessInterface;
210
+ totalCount: number;
211
+ isLightMode: boolean;
212
+ }
42
213
  interface ModalState {
43
- type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'metrics-list' | 'charts-list' | 'recommendations-list' | 'competitive-analysis' | 'competitive-gap' | 'visualization' | 'recommendation-action-steps' | null;
214
+ type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'goal-insights-list' | 'goal-business-insights-list' | 'business-insight-detail' | 'metrics-list' | 'charts-list' | 'recommendations-list' | 'competitive-analysis' | 'competitive-gap' | 'visualization' | 'recommendation-action-steps' | 'item-detail' | 'goal-detail' | 'goal-objectives' | 'objective-strategies' | 'strategy-recommendations' | 'category-detail' | 'strength-detail' | 'gap-detail' | 'opportunity-detail' | 'key-strengths-list' | 'critical-gaps-list' | 'key-strength-detail' | 'critical-gap-detail' | 'funnel-strengths-list' | 'funnel-weaknesses-list' | 'funnel-strength-detail' | 'funnel-weakness-detail' | null;
44
215
  data: InsightBlockInterface | InsightBlockInterface[] | PerformanceMetricInterface | PerformanceMetricInterface[] | AiChartInterface | {
45
- metrics: PerformanceMetricInterface[];
46
- insightContext?: {
47
- title: string;
48
- description: string;
49
- businessContext: string;
50
- priority: number;
51
- };
52
- } | {
53
216
  charts: AiChartInterface[];
54
217
  insightContext?: {
55
218
  title: string;
@@ -80,30 +243,70 @@ interface ModalState {
80
243
  title?: string;
81
244
  actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
82
245
  viewMode: ViewModeEnum;
83
- } | VisualizationData | null;
246
+ } | ItemDetailModalData | VisualizationData | GoalDetailModalData | GoalObjectivesModalData | ObjectiveStrategiesModalData | StrategyRecommendationsModalData | CategoryDetailModalData | StrengthDetailModalData | GapDetailModalData | OpportunityDetailModalData | GoalInsightsListModalData | GoalBusinessInsightsListModalData | MetricsListModalData | BusinessInsightDetailModalData | KeyStrengthsListModalData | CriticalGapsListModalData | KeyStrengthDetailModalData | CriticalGapDetailModalData | FunnelStrengthsListModalData | FunnelWeaknessesListModalData | FunnelStrengthDetailModalData | FunnelWeaknessDetailModalData | {
247
+ insight: InsightBlockInterface;
248
+ } | null;
84
249
  charts: AiChartInterface[];
85
250
  previousState?: ModalState | null;
86
251
  expandedSection?: string;
252
+ navigationStack?: ModalState[];
87
253
  }
88
254
  declare class ModalService {
89
255
  private modalState;
90
256
  modalState$: rxjs.Observable<ModalState>;
257
+ viewInContextSignal: _angular_core.WritableSignal<{
258
+ itemId: string;
259
+ itemType?: string;
260
+ } | null>;
261
+ /**
262
+ * Checks if the current modal context is from Profile Analysis Dashboard
263
+ * by looking at the current modal state and navigation stack
264
+ */
265
+ private isInProfileAnalysisContext;
91
266
  openInsightModal(insight: InsightBlockInterface, charts?: AiChartInterface[], previousState?: ModalState): void;
92
267
  openMetricModal(metric: PerformanceMetricInterface, charts?: AiChartInterface[], previousState?: ModalState, expandedSection?: string): void;
93
268
  openChartModal(chart: AiChartInterface, previousState?: ModalState): void;
94
269
  openInsightsListModal(insights: InsightBlockInterface[], charts?: AiChartInterface[]): void;
95
- openMetricsListModal(metrics: PerformanceMetricInterface[], charts?: AiChartInterface[], insightContext?: {
270
+ openGoalInsightsListModal(insights: InsightBlockInterface[], metrics: PerformanceMetricInterface[], charts: AiChartInterface[], goalContext: {
271
+ title: string;
272
+ description: string;
273
+ icon: string;
274
+ }, previousState?: ModalState, sourceCategory?: string, sourceGapTitle?: string): void;
275
+ openGoalBusinessInsightsListModal(businessInsights: ProfileAnalysisRecommendationInterface[], goalContext: {
276
+ title: string;
277
+ description: string;
278
+ icon: string;
279
+ }, viewMode: ViewModeEnum, previousState?: ModalState, sourceCategory?: string, sourceGapTitle?: string): void;
280
+ navigateToBusinessInsightDetail(recommendation: ProfileAnalysisRecommendationInterface, goalContext: {
281
+ title: string;
282
+ description: string;
283
+ icon: string;
284
+ }, viewMode: ViewModeEnum): void;
285
+ openMetricsListModal(metrics: PerformanceMetricInterface[], charts?: AiChartInterface[], goalContext?: {
96
286
  title: string;
97
287
  description: string;
98
288
  businessContext: string;
99
289
  priority: number;
290
+ }, previousState?: ModalState): void;
291
+ openGoalMetricsListModal(metrics: PerformanceMetricInterface[], charts: AiChartInterface[], goalContext: {
292
+ title: string;
293
+ description: string;
294
+ icon: string;
295
+ }, previousState?: ModalState, sourceCategory?: string, sourceGapTitle?: string): void;
296
+ openRecommendationMetricsListModal(metrics: PerformanceMetricInterface[], charts: AiChartInterface[], recommendationContext: {
297
+ title: string;
298
+ description: string;
299
+ }, directlyAffectedMetricId?: string, indirectlyAffectedMetricIds?: string[], previousState?: ModalState, hierarchyContext?: {
300
+ goalTitle?: string;
301
+ objectiveTitle?: string;
302
+ strategyTitle?: string;
100
303
  }): void;
101
304
  openChartsListModal(charts: AiChartInterface[], insightContext?: {
102
305
  title: string;
103
306
  description: string;
104
307
  businessContext: string;
105
308
  priority: number;
106
- }): void;
309
+ }, previousState?: ModalState): void;
107
310
  openRecommendationsListModal(recommendations: string[], insightContext: {
108
311
  title: string;
109
312
  description: string;
@@ -120,7 +323,32 @@ declare class ModalService {
120
323
  openVisualizationModal(visualization: VisualizationData, previousState?: ModalState): void;
121
324
  openCompetitiveGapModal(item: ProfileItemInterface, viewMode: ViewModeEnum, previousState?: ModalState): void;
122
325
  openRecommendationActionStepsModal(title: string | undefined, actionSteps: ProfileAnalysisRecommendationActionStepInterface[], viewMode: ViewModeEnum, previousState?: ModalState): void;
326
+ openItemDetailModal(item: ProfileItemInterface, viewMode: ViewModeEnum, itemType?: string, sectionTitle?: string, subsectionTitle?: string, previousState?: ModalState, isCompactMode?: boolean, fromProfileAnalysis?: boolean): void;
327
+ navigateToItemInModal(item: ProfileItemInterface, viewMode: ViewModeEnum, itemType?: string, sectionTitle?: string, subsectionTitle?: string, isCompactMode?: boolean, fromProfileAnalysis?: boolean): void;
328
+ navigateBackInModal(): void;
329
+ navigateToStackIndex(index: number): void;
330
+ triggerViewInContext(itemId: string, itemType?: string): void;
331
+ clearViewInContext(): void;
123
332
  goBack(previousState: ModalState): void;
333
+ isItemDetailModalOpen(): boolean;
334
+ openGoalDetailModal(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
335
+ openGoalObjectivesModal(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
336
+ navigateToGoalDetail(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
337
+ navigateToGoalObjectives(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
338
+ navigateToObjectiveStrategies(objective: ObjectiveV3Interface, goalTitle: string | undefined, viewMode: ViewModeEnum): void;
339
+ navigateToStrategyRecommendations(strategy: StrategyV3Interface, objectiveTitle: string | undefined, goalTitle: string | undefined, viewMode: ViewModeEnum): void;
340
+ openCategoryDetailModal(category: OperationalCategoryInterface, viewMode: ViewModeEnum, scrollToSection?: 'strengths' | 'gaps' | 'opportunities'): void;
341
+ navigateToStrengthDetail(strength: CategoryStrengthInterface, categoryTitle: string, viewMode: ViewModeEnum): void;
342
+ navigateToGapDetail(gap: CategoryGapInterface, categoryTitle: string, viewMode: ViewModeEnum): void;
343
+ navigateToOpportunityDetail(opportunity: CategoryOpportunityInterface, categoryTitle: string, viewMode: ViewModeEnum): void;
344
+ openKeyStrengthsListModal(keyStrengths: KeyStrengthInterface[], viewMode: ViewModeEnum): void;
345
+ openCriticalGapsListModal(criticalGaps: CriticalGapInterface[], viewMode: ViewModeEnum): void;
346
+ navigateToKeyStrengthDetail(strength: KeyStrengthInterface, viewMode: ViewModeEnum): void;
347
+ navigateToCriticalGapDetail(gap: CriticalGapInterface, viewMode: ViewModeEnum): void;
348
+ openFunnelStrengthsListModal(strengths: FunnelStrengthInterface[], isLightMode: boolean): void;
349
+ openFunnelWeaknessesListModal(weaknesses: FunnelWeaknessInterface[], isLightMode: boolean): void;
350
+ navigateToFunnelStrengthDetail(strength: FunnelStrengthInterface, isLightMode: boolean): void;
351
+ navigateToFunnelWeaknessDetail(weakness: FunnelWeaknessInterface, isLightMode: boolean): void;
124
352
  closeModal(): void;
125
353
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>;
126
354
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModalService>;
@@ -182,6 +410,7 @@ interface MetricValueTooltipContent {
182
410
  current: number[];
183
411
  prior?: number[];
184
412
  };
413
+ currencySymbol?: string;
185
414
  }
186
415
  interface StatusBadgeTooltipContent {
187
416
  status: MetricStatusEnum;
@@ -196,6 +425,7 @@ interface StatusBadgeTooltipContent {
196
425
  description?: string;
197
426
  priority?: number;
198
427
  priorityExplanation?: string;
428
+ currencySymbol?: string;
199
429
  }
200
430
  interface TrendIndicatorTooltipContent {
201
431
  metricName: string;
@@ -210,6 +440,7 @@ interface TrendIndicatorTooltipContent {
210
440
  current: number[];
211
441
  prior?: number[];
212
442
  };
443
+ currencySymbol?: string;
213
444
  }
214
445
  interface PriorityBadgeTooltipContent {
215
446
  priority: number;
@@ -241,6 +472,7 @@ interface CompetitiveBenchmarkTooltipContent {
241
472
  metricName?: string;
242
473
  currentValue?: number;
243
474
  unit?: string;
475
+ currencySymbol?: string;
244
476
  }
245
477
  interface InsightsListTooltipContent {
246
478
  title: string;
@@ -267,6 +499,7 @@ interface CompetitiveStatusTooltipContent {
267
499
  unit: string;
268
500
  status?: CompetitiveScoreEnum;
269
501
  }>;
502
+ currencySymbol?: string;
270
503
  }
271
504
  interface FunnelStageCompetitiveTooltipContent {
272
505
  funnelStage: string;
@@ -298,14 +531,15 @@ interface FunnelStageCompetitiveTooltipContent {
298
531
  };
299
532
  unit: string;
300
533
  }>;
534
+ currencySymbol?: string;
301
535
  }
302
536
 
303
537
  declare class TooltipDataService {
304
538
  private formatCache;
305
539
  private metricLookupCache;
306
- extractMetricTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): MetricValueTooltipContent;
307
- extractStatusTooltipData(metric: PerformanceMetricInterface): StatusBadgeTooltipContent;
308
- extractTrendTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): TrendIndicatorTooltipContent;
540
+ extractMetricTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface, currencySymbol?: string): MetricValueTooltipContent;
541
+ extractStatusTooltipData(metric: PerformanceMetricInterface, currencySymbol?: string): StatusBadgeTooltipContent;
542
+ extractTrendTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface, currencySymbol?: string): TrendIndicatorTooltipContent;
309
543
  extractPriorityTooltipData(insight: InsightBlockInterface): PriorityBadgeTooltipContent;
310
544
  extractBreakdownRowTooltipData(metric: PerformanceMetricInterface): BreakdownRowTooltipContent;
311
545
  findMetricByName(name: string, metrics: PerformanceMetricInterface[]): PerformanceMetricInterface | undefined;
@@ -321,7 +555,7 @@ declare class TooltipDataService {
321
555
  getPriorityLabel(priority: number): string;
322
556
  isInverseMetric(metricName: string): boolean;
323
557
  formatDimensionValue(value?: string): string;
324
- extractCompetitiveBenchmarkTooltipData(metric: PerformanceMetricInterface): CompetitiveBenchmarkTooltipContent | null;
558
+ extractCompetitiveBenchmarkTooltipData(metric: PerformanceMetricInterface, currencySymbol?: string): CompetitiveBenchmarkTooltipContent | null;
325
559
  hasCompetitiveBenchmark(metric: PerformanceMetricInterface): boolean;
326
560
  getCompetitiveScoreLabel(score: string): string;
327
561
  private determineUnit;
@@ -330,7 +564,7 @@ declare class TooltipDataService {
330
564
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<TooltipDataService>;
331
565
  }
332
566
 
333
- type ViewMode = 'simplified' | 'compact' | 'expanded';
567
+ type ViewMode = 'compact' | 'expanded';
334
568
  type LayoutMode = 'bento' | 'grid' | 'masonry';
335
569
  declare class ViewModeService {
336
570
  private viewMode;
@@ -344,7 +578,6 @@ declare class ViewModeService {
344
578
  toggleViewMode(): void;
345
579
  setViewMode(mode: ViewMode): void;
346
580
  setLayoutMode(mode: LayoutMode): void;
347
- isSimplified(): boolean;
348
581
  isCompact(): boolean;
349
582
  isExpanded(): boolean;
350
583
  isBentoLayout(): boolean;
@@ -611,9 +844,39 @@ declare class BusinessProfileSearchService {
611
844
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<BusinessProfileSearchService>;
612
845
  }
613
846
 
847
+ interface RelatedFunnelContent {
848
+ insights: InsightBlockInterface[];
849
+ metrics: PerformanceMetricInterface[];
850
+ }
851
+ interface RelatedBusinessContent {
852
+ insights: ProfileAnalysisRecommendationInterface[];
853
+ }
854
+ interface CrossDashboardRelationships {
855
+ funnelAnalysis?: RelatedFunnelContent;
856
+ businessAnalysis?: RelatedBusinessContent;
857
+ }
858
+ declare class CrossDashboardRelationshipsService {
859
+ getRelatedFunnelInsights(goalId: string, allInsights: InsightBlockInterface[]): InsightBlockInterface[];
860
+ getRelatedFunnelMetrics(goalId: string, allMetrics: PerformanceMetricInterface[]): PerformanceMetricInterface[];
861
+ getRelatedBusinessInsights(goalId: string, allBusinessInsights: ProfileAnalysisRecommendationInterface[]): ProfileAnalysisRecommendationInterface[];
862
+ getRelatedContentForGoal(goal: GoalV3Interface, allInsights: InsightBlockInterface[], allMetrics: PerformanceMetricInterface[], allBusinessInsights: ProfileAnalysisRecommendationInterface[]): CrossDashboardRelationships;
863
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CrossDashboardRelationshipsService, never>;
864
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CrossDashboardRelationshipsService>;
865
+ }
866
+
867
+ interface BreadcrumbLevel {
868
+ label: string;
869
+ clickable: boolean;
870
+ onClick?: () => void;
871
+ }
872
+
614
873
  declare class ModalComponent {
615
874
  isLightMode: _angular_core.InputSignal<boolean>;
616
875
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
876
+ allMetrics: _angular_core.InputSignal<PerformanceMetricInterface[]>;
877
+ allInsights: _angular_core.InputSignal<InsightBlockInterface[]>;
878
+ allCharts: _angular_core.InputSignal<AiChartInterface[]>;
879
+ currencySymbol: _angular_core.InputSignal<string>;
617
880
  private metricNameCache;
618
881
  private allMetricsSignal;
619
882
  private modalStateSignal;
@@ -622,7 +885,7 @@ declare class ModalComponent {
622
885
  private animatedTrendValues;
623
886
  private animationFrames;
624
887
  isOpen: _angular_core.Signal<boolean>;
625
- modalType: _angular_core.Signal<"metric" | "insight" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null>;
888
+ modalType: _angular_core.Signal<"insight" | "metric" | "chart" | "insights-list" | "goal-insights-list" | "goal-business-insights-list" | "business-insight-detail" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | "funnel-strengths-list" | "funnel-weaknesses-list" | "funnel-strength-detail" | "funnel-weakness-detail" | null>;
626
889
  charts: _angular_core.Signal<AiChartInterface[]>;
627
890
  modalKey: _angular_core.Signal<number>;
628
891
  insightData: _angular_core.Signal<InsightBlockInterface | null>;
@@ -635,6 +898,12 @@ declare class ModalComponent {
635
898
  chartPieData: _angular_core.Signal<AiChartInterface | null>;
636
899
  chartAreaData: _angular_core.Signal<AiChartInterface | null>;
637
900
  insightsListData: _angular_core.Signal<InsightBlockInterface[] | null>;
901
+ goalInsightsListData: _angular_core.Signal<InsightBlockInterface[] | null>;
902
+ goalInsightsContext: _angular_core.Signal<{
903
+ title: string;
904
+ description: string;
905
+ icon: string;
906
+ } | null>;
638
907
  metricsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
639
908
  metricsListMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
640
909
  metricsListInsightContext: _angular_core.Signal<{
@@ -667,37 +936,63 @@ declare class ModalComponent {
667
936
  competitiveAnalysis: string;
668
937
  priority: number;
669
938
  } | null>;
939
+ funnelStrengthsListData: _angular_core.Signal<FunnelStrengthInterface[] | null>;
940
+ funnelStrengthsListCount: _angular_core.Signal<number>;
941
+ funnelWeaknessesListData: _angular_core.Signal<FunnelWeaknessInterface[] | null>;
942
+ funnelWeaknessesListCount: _angular_core.Signal<number>;
943
+ funnelStrengthDetailData: _angular_core.Signal<FunnelStrengthInterface | null>;
944
+ funnelStrengthDetailTotalCount: _angular_core.Signal<number>;
945
+ funnelWeaknessDetailData: _angular_core.Signal<FunnelWeaknessInterface | null>;
946
+ funnelWeaknessDetailTotalCount: _angular_core.Signal<number>;
947
+ goalBusinessInsightsListData: _angular_core.Signal<any[] | null>;
948
+ goalBusinessInsightsContext: _angular_core.Signal<{
949
+ title: string;
950
+ description: string;
951
+ icon: string;
952
+ } | null>;
953
+ isBusinessInsightDetailModal: _angular_core.Signal<boolean>;
954
+ businessInsightDetailData: _angular_core.Signal<{
955
+ recommendation: any;
956
+ goalContext: {
957
+ title: string;
958
+ description: string;
959
+ icon: string;
960
+ };
961
+ viewMode: ViewModeEnum;
962
+ } | null>;
670
963
  modalHeaderPriorityBadge: _angular_core.Signal<number | null>;
671
964
  competitiveAnalysisPanelClass: _angular_core.Signal<string>;
672
- allMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
673
- allInsights: _angular_core.Signal<InsightBlockInterface[]>;
674
- allCharts: _angular_core.Signal<AiChartInterface[]>;
965
+ protected computedAllMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
966
+ protected computedAllInsights: _angular_core.Signal<InsightBlockInterface[]>;
967
+ protected computedAllCharts: _angular_core.Signal<AiChartInterface[]>;
968
+ protected allBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
675
969
  hasPreviousState: _angular_core.Signal<boolean>;
676
970
  currentModalState: _angular_core.Signal<{
677
- type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null;
971
+ type: "insight" | "metric" | "chart" | "insights-list" | "goal-insights-list" | "goal-business-insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | "funnel-strengths-list" | "funnel-weaknesses-list" | "funnel-strength-detail" | "funnel-weakness-detail" | "business-insight-detail" | null;
678
972
  data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null;
679
973
  charts: AiChartInterface[];
680
974
  openedAt: number;
681
- previousState: {
682
- type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis";
683
- data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[];
684
- charts: AiChartInterface[];
685
- previousState: null;
686
- } | null;
975
+ previousState: ModalState | null;
687
976
  expandedSection: string | undefined;
688
977
  }>;
689
978
  expandedSection: _angular_core.Signal<string | undefined>;
690
979
  modalTitle: _angular_core.Signal<string>;
691
980
  private modalService;
981
+ private breadcrumbService;
982
+ shouldShowBreadcrumbs: _angular_core.Signal<boolean>;
983
+ breadcrumbs: _angular_core.Signal<BreadcrumbLevel[]>;
692
984
  constructor();
693
985
  getInsightContextPriorityBadgeClass(priority: number): string;
694
986
  private computeModalTitle;
695
987
  closeModal(): void;
696
988
  openInsightModal(insight: InsightBlockInterface): void;
989
+ openBusinessInsightDetail(businessInsight: any): void;
697
990
  openMetricModalFromList(metric: PerformanceMetricInterface): void;
698
991
  openChartModalFromList(chart: AiChartInterface): void;
699
992
  goBack(): void;
993
+ navigateToList(): void;
700
994
  formatMetricName(name: string): string;
995
+ getPriorityBadgeClasses(priority: number): string;
701
996
  formatMetricValue(metric: PerformanceMetricInterface): string;
702
997
  getMetricTrendClass(metric: PerformanceMetricInterface): string;
703
998
  animateMetricsList(metrics: PerformanceMetricInterface[]): void;
@@ -708,7 +1003,7 @@ declare class ModalComponent {
708
1003
  formatAnimatedMetricValue(metric: PerformanceMetricInterface, animatedValue: number): string;
709
1004
  setMetricsAndInsights(metrics: PerformanceMetricInterface[], insights: InsightBlockInterface[], allCharts?: AiChartInterface[]): void;
710
1005
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
711
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "symphiq-funnel-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1006
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "symphiq-funnel-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "allMetrics": { "alias": "allMetrics"; "required": false; "isSignal": true; }; "allInsights": { "alias": "allInsights"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
712
1007
  }
713
1008
 
714
1009
  interface NavSection {
@@ -764,6 +1059,31 @@ declare class SearchService {
764
1059
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SearchService>;
765
1060
  }
766
1061
 
1062
+ declare class ProfileContextService {
1063
+ private contextIndex;
1064
+ indexProfile(sections: ProfileSectionInterface[], recommendations?: ProfileAnalysisRecommendationInterface[]): void;
1065
+ getRegions(): ProfileItemInterface[];
1066
+ getSeasons(): ProfileItemInterface[];
1067
+ getPriceTiers(): ProfileItemInterface[];
1068
+ getCustomerSegments(): ProfileItemInterface[];
1069
+ getProductCategories(): ProfileItemInterface[];
1070
+ getFocusAreas(): ProfileItemInterface[];
1071
+ getItemById(id: string): ProfileItemInterface | undefined;
1072
+ getItemsByIds(ids: string[]): ProfileItemInterface[];
1073
+ getCompetitors(): ProfileItemInterface[];
1074
+ getRecommendationById(id: string): ProfileAnalysisRecommendationInterface | undefined;
1075
+ getCompetitorsByIds(ids: string[]): ProfileItemInterface[];
1076
+ getRecommendationsByProfileItemIds(itemIds: string[]): ProfileAnalysisRecommendationInterface[];
1077
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileContextService, never>;
1078
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileContextService>;
1079
+ }
1080
+
1081
+ declare enum DisplayModeEnum {
1082
+ SIMPLIFIED = "SIMPLIFIED",
1083
+ COMPACT = "COMPACT",
1084
+ EXPANDED = "EXPANDED"
1085
+ }
1086
+
767
1087
  interface ScrollBaseDetail {
768
1088
  isScrolling: boolean;
769
1089
  }
@@ -783,6 +1103,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
783
1103
  viewModeService: ViewModeService;
784
1104
  searchService: SearchService;
785
1105
  private tooltipService;
1106
+ private profileContextService;
786
1107
  modalComponent?: ModalComponent;
787
1108
  dashboardContainer?: ElementRef<HTMLElement>;
788
1109
  protected readonly ViewModeEnum: typeof ViewModeEnum;
@@ -794,6 +1115,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
794
1115
  scrollElement: _angular_core.InputSignal<HTMLElement | null | undefined>;
795
1116
  isLoading: _angular_core.InputSignal<boolean | undefined>;
796
1117
  useSampleData: _angular_core.InputSignal<boolean>;
1118
+ onboarded: _angular_core.InputSignal<boolean>;
797
1119
  selectedCategory: _angular_core.WritableSignal<string>;
798
1120
  reverseSortOrder: _angular_core.WritableSignal<boolean>;
799
1121
  selectedSectionFilter: _angular_core.WritableSignal<string>;
@@ -809,6 +1131,13 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
809
1131
  isCompetitiveTransitioning: _angular_core.WritableSignal<boolean>;
810
1132
  isOverallAssessmentLoading: _angular_core.WritableSignal<boolean>;
811
1133
  areChartsLoading: _angular_core.Signal<boolean>;
1134
+ protected displayMode: _angular_core.WritableSignal<DisplayModeEnum>;
1135
+ protected isViewModeSwitcherOpen: _angular_core.WritableSignal<boolean>;
1136
+ protected isViewModeSwitching: _angular_core.WritableSignal<boolean>;
1137
+ protected isSimplifiedView: _angular_core.Signal<boolean>;
1138
+ protected isCompactView: _angular_core.Signal<boolean>;
1139
+ protected isExpandedView: _angular_core.Signal<boolean>;
1140
+ protected displayModeLabel: _angular_core.Signal<"Simplified" | "Compact" | "Expanded">;
812
1141
  private loadingStartTime;
813
1142
  private minLoadingDisplayTime;
814
1143
  private loadingTimeoutId;
@@ -824,7 +1153,10 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
824
1153
  navSections: NavSection[];
825
1154
  isLightMode: _angular_core.Signal<boolean>;
826
1155
  analysisData: _angular_core.Signal<FunnelAnalysisInterface | undefined>;
827
- performanceOverview: _angular_core.Signal<_jebgem_model.PerformanceOverviewStructuredV3Interface>;
1156
+ performanceOverview: _angular_core.Signal<PerformanceOverviewStructuredV3Interface>;
1157
+ strengths: _angular_core.Signal<_jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface.FunnelStrengthInterface[]>;
1158
+ weaknesses: _angular_core.Signal<_jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface.FunnelWeaknessInterface[]>;
1159
+ currencySymbol: _angular_core.Signal<string>;
828
1160
  insights: _angular_core.Signal<InsightBlockInterface[]>;
829
1161
  private allBreakdowns;
830
1162
  breakdowns: _angular_core.Signal<BreakdownMetricInterface[]>;
@@ -834,6 +1166,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
834
1166
  revenueValue: _angular_core.Signal<number>;
835
1167
  revenueTrend: _angular_core.Signal<number>;
836
1168
  allCharts: _angular_core.Signal<AiChartInterface[]>;
1169
+ allBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
837
1170
  /**
838
1171
  * Pre-computed map: performanceItemId -> charts[]
839
1172
  * Enables O(1) lookups instead of array filtering on each access
@@ -841,7 +1174,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
841
1174
  private chartsById;
842
1175
  headerClass: _angular_core.Signal<string>;
843
1176
  headerTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
844
- headerSubtitleClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
1177
+ headerSubtitleClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
845
1178
  metaLabelClass: _angular_core.Signal<"text-slate-600" | "text-slate-500">;
846
1179
  sectionTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
847
1180
  selectClass: _angular_core.Signal<"bg-white text-slate-900 border-slate-300 hover:border-blue-400 transition-all duration-200" | "bg-slate-700 text-white border-slate-600 hover:border-slate-500 transition-all duration-200">;
@@ -890,10 +1223,13 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
890
1223
  showCompetitiveIntelligence: _angular_core.Signal<boolean>;
891
1224
  tocSections: _angular_core.Signal<ProfileSectionInterface[]>;
892
1225
  private dateFormatCache;
893
- constructor(funnelOrderService: FunnelOrderService, viewModeService: ViewModeService, searchService: SearchService, tooltipService: TooltipService);
1226
+ constructor(funnelOrderService: FunnelOrderService, viewModeService: ViewModeService, searchService: SearchService, tooltipService: TooltipService, profileContextService: ProfileContextService);
894
1227
  ngAfterViewInit(): void;
895
1228
  handleSearchResult(result: SearchResult): void;
896
1229
  clearSearchResult(): void;
1230
+ protected openViewModeSwitcher(): void;
1231
+ protected closeViewModeSwitcher(): void;
1232
+ protected handleDisplayModeChange(mode: DisplayModeEnum): void;
897
1233
  isFunnelStage(metricName: string): boolean;
898
1234
  formatDate(dateString: string): string;
899
1235
  chartsForMetric(metric: PerformanceMetricInterface): AiChartInterface[];
@@ -915,7 +1251,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
915
1251
  getCategoryPillClass(categoryValue: string): string;
916
1252
  formatValue(value: number): string;
917
1253
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqFunnelAnalysisDashboardComponent, never>;
918
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqFunnelAnalysisDashboardComponent, "symphiq-funnel-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "funnelAnalysis": { "alias": "funnelAnalysis"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "useSampleData": { "alias": "useSampleData"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1254
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqFunnelAnalysisDashboardComponent, "symphiq-funnel-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "funnelAnalysis": { "alias": "funnelAnalysis"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "useSampleData": { "alias": "useSampleData"; "required": false; "isSignal": true; }; "onboarded": { "alias": "onboarded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
919
1255
  }
920
1256
 
921
1257
  declare class MetricCardComponent {
@@ -931,6 +1267,7 @@ declare class MetricCardComponent {
931
1267
  currentModalState: _angular_core.InputSignal<ModalState | undefined>;
932
1268
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
933
1269
  initialExpandedSection: _angular_core.InputSignal<string | undefined>;
1270
+ currencySymbol: _angular_core.InputSignal<string>;
934
1271
  Math: Math;
935
1272
  milestones: number[];
936
1273
  currentYear: number;
@@ -1002,9 +1339,9 @@ declare class MetricCardComponent {
1002
1339
  competitiveScoreBadgeLightClass: _angular_core.Signal<string>;
1003
1340
  competitiveScoreBadgeDarkClass: _angular_core.Signal<string>;
1004
1341
  competitiveScoreBadgeClass: _angular_core.Signal<string>;
1005
- competitiveScoreTextClass: _angular_core.Signal<"" | "text-blue-400" | "text-emerald-600" | "text-blue-700" | "text-orange-600">;
1006
- competitiveComparisonDefaultClass: _angular_core.Signal<"text-slate-700" | "text-slate-300">;
1007
- competitiveComparisonClass: _angular_core.Signal<"text-slate-700" | "text-slate-300" | "text-emerald-600 font-semibold" | "text-orange-600 font-semibold">;
1342
+ competitiveScoreTextClass: _angular_core.Signal<"" | "text-emerald-600" | "text-blue-400" | "text-blue-700" | "text-orange-600">;
1343
+ competitiveComparisonDefaultClass: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
1344
+ competitiveComparisonClass: _angular_core.Signal<"text-slate-300" | "text-slate-700" | "text-emerald-600 font-semibold" | "text-orange-600 font-semibold">;
1008
1345
  getCompetitiveScoreIcon(): string;
1009
1346
  getCompetitiveScoreLabel(): string;
1010
1347
  getCompetitiveScoreLabelFull(): string;
@@ -1015,8 +1352,10 @@ declare class MetricCardComponent {
1015
1352
  toggleCompetitiveBenchmark(): void;
1016
1353
  hasProjectedValue(): boolean;
1017
1354
  getProjectedValue(): number | undefined;
1355
+ getPriorityBadgeClasses(priority: number | undefined): string;
1356
+ getPriorityBadgeClassesHover(priority: number | undefined): string;
1018
1357
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetricCardComponent, never>;
1019
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricCardComponent, "symphiq-funnel-analysis-metric-card", never, { "metric": { "alias": "metric"; "required": false; "isSignal": true; }; "insights": { "alias": "insights"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "analysis": { "alias": "analysis"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "initialExpandedSection": { "alias": "initialExpandedSection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1358
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricCardComponent, "symphiq-funnel-analysis-metric-card", never, { "metric": { "alias": "metric"; "required": false; "isSignal": true; }; "insights": { "alias": "insights"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "analysis": { "alias": "analysis"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "initialExpandedSection": { "alias": "initialExpandedSection"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1020
1359
  }
1021
1360
 
1022
1361
  declare class InsightCardComponent {
@@ -1024,12 +1363,14 @@ declare class InsightCardComponent {
1024
1363
  allMetrics: _angular_core.InputSignal<PerformanceMetricInterface[]>;
1025
1364
  charts: _angular_core.InputSignal<AiChartInterface[]>;
1026
1365
  allCharts: _angular_core.InputSignal<AiChartInterface[]>;
1366
+ allBusinessInsights: _angular_core.InputSignal<ProfileAnalysisRecommendationInterface[]>;
1027
1367
  isLightMode: _angular_core.InputSignal<boolean>;
1028
1368
  isInModal: _angular_core.InputSignal<boolean>;
1029
1369
  isLoading: _angular_core.InputSignal<boolean>;
1030
1370
  isCompactMode: _angular_core.InputSignal<boolean>;
1031
1371
  currentModalState: _angular_core.InputSignal<ModalState | undefined>;
1032
1372
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1373
+ currencySymbol: _angular_core.InputSignal<string>;
1033
1374
  isExpanded: _angular_core.WritableSignal<boolean>;
1034
1375
  isCompetitiveContextExpanded: _angular_core.WritableSignal<boolean>;
1035
1376
  lightModeTitleClass: _angular_core.Signal<string>;
@@ -1050,9 +1391,9 @@ declare class InsightCardComponent {
1050
1391
  recommendationsContainerLightClass: _angular_core.Signal<string>;
1051
1392
  recommendationsContainerDarkClass: _angular_core.Signal<string>;
1052
1393
  recommendationsContainerClass: _angular_core.Signal<string>;
1053
- priorityBadgeLightClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-100/70 text-red-700 border-red-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60">;
1054
- priorityBadgeDarkClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-500/20 text-red-400 border-red-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50">;
1055
- priorityBadgeClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-100/70 text-red-700 border-red-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-500/20 text-red-400 border-red-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50">;
1394
+ priorityBadgeLightClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-100/70 text-red-700 border-red-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60">;
1395
+ priorityBadgeDarkClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-500/20 text-red-400 border-red-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50">;
1396
+ priorityBadgeClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-100/70 text-red-700 border-red-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-500/20 text-red-400 border-red-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50">;
1056
1397
  containerLightClass: _angular_core.Signal<"transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-white to-blue-50/50 border-2 border-blue-300 hover:border-blue-400 shadow-lg shadow-blue-200/50 hover:shadow-blue-300/60" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-white border-slate-200 hover:border-blue-400 hover:shadow-blue-100/50">;
1057
1398
  containerDarkClass: _angular_core.Signal<"transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-slate-800 to-blue-900/20 border-2 border-blue-500/40 hover:border-blue-400/60 shadow-lg shadow-blue-500/20 hover:shadow-blue-500/30" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-slate-800 border-slate-700 hover:border-slate-500 hover:shadow-slate-900/50">;
1058
1399
  containerClass: _angular_core.Signal<"transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-white to-blue-50/50 border-2 border-blue-300 hover:border-blue-400 shadow-lg shadow-blue-200/50 hover:shadow-blue-300/60" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-white border-slate-200 hover:border-blue-400 hover:shadow-blue-100/50" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-slate-800 to-blue-900/20 border-2 border-blue-500/40 hover:border-blue-400/60 shadow-lg shadow-blue-500/20 hover:shadow-blue-500/30" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-slate-800 border-slate-700 hover:border-slate-500 hover:shadow-slate-900/50">;
@@ -1085,13 +1426,17 @@ declare class InsightCardComponent {
1085
1426
  toggleCompetitiveContext(): void;
1086
1427
  hasCompetitiveAnalysis(): boolean;
1087
1428
  getCompetitiveAnalysis(): string;
1429
+ relatedBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
1430
+ relatedBusinessInsightsCount: _angular_core.Signal<number>;
1431
+ hasRelatedBusinessInsights: _angular_core.Signal<boolean>;
1432
+ openRelatedBusinessInsightsModal(): void;
1088
1433
  competitiveContextPanelLightBaseClass: _angular_core.Signal<string>;
1089
1434
  competitiveContextPanelDarkBaseClass: _angular_core.Signal<string>;
1090
1435
  priorityBorderLightClass: _angular_core.Signal<"border-l-red-400" | "border-l-amber-400" | "border-l-blue-400" | "border-l-slate-400">;
1091
1436
  priorityBorderDarkClass: _angular_core.Signal<"border-l-red-500" | "border-l-amber-500" | "border-l-blue-500" | "border-l-slate-500">;
1092
1437
  competitiveContextPanelClass: _angular_core.Signal<string>;
1093
1438
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InsightCardComponent, never>;
1094
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<InsightCardComponent, "symphiq-funnel-analysis-insight-card", never, { "insight": { "alias": "insight"; "required": false; "isSignal": true; }; "allMetrics": { "alias": "allMetrics"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1439
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InsightCardComponent, "symphiq-funnel-analysis-insight-card", never, { "insight": { "alias": "insight"; "required": false; "isSignal": true; }; "allMetrics": { "alias": "allMetrics"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "allBusinessInsights": { "alias": "allBusinessInsights"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1095
1440
  }
1096
1441
 
1097
1442
  interface MetricGroup {
@@ -1106,6 +1451,7 @@ declare class BreakdownSectionComponent {
1106
1451
  isLightMode: _angular_core.InputSignal<boolean>;
1107
1452
  isLoading: _angular_core.InputSignal<boolean>;
1108
1453
  isCompactMode: _angular_core.InputSignal<boolean>;
1454
+ currencySymbol: _angular_core.InputSignal<string>;
1109
1455
  Math: Math;
1110
1456
  private tooltipDataService;
1111
1457
  private modalService;
@@ -1183,7 +1529,7 @@ declare class BreakdownSectionComponent {
1183
1529
  toggleMetricExpansion(metricKey: string): void;
1184
1530
  getTopPriorityMetrics(metrics: PerformanceMetricInterface[], count?: number): PerformanceMetricInterface[];
1185
1531
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreakdownSectionComponent, never>;
1186
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreakdownSectionComponent, "symphiq-funnel-analysis-breakdown-section", never, { "breakdown": { "alias": "breakdown"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1532
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreakdownSectionComponent, "symphiq-funnel-analysis-breakdown-section", never, { "breakdown": { "alias": "breakdown"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1187
1533
  }
1188
1534
 
1189
1535
  declare class OverallAssessmentComponent {
@@ -1195,6 +1541,9 @@ declare class OverallAssessmentComponent {
1195
1541
  isLoading: _angular_core.InputSignal<boolean>;
1196
1542
  isCompactMode: _angular_core.InputSignal<boolean>;
1197
1543
  isChartsLoading: _angular_core.InputSignal<boolean>;
1544
+ strengths: _angular_core.InputSignal<any[]>;
1545
+ weaknesses: _angular_core.InputSignal<any[]>;
1546
+ currencySymbol: _angular_core.InputSignal<string>;
1198
1547
  scrollToSection: _angular_core.OutputEmitterRef<string>;
1199
1548
  private modalService;
1200
1549
  private tooltipDataService;
@@ -1228,15 +1577,15 @@ declare class OverallAssessmentComponent {
1228
1577
  darkModeRevenueIconClass: _angular_core.Signal<string>;
1229
1578
  revenueIconClass: _angular_core.Signal<string>;
1230
1579
  formattedRevenueValue: _angular_core.Signal<string>;
1231
- revenueTrendDirection: _angular_core.Signal<any>;
1580
+ revenueTrendDirection: _angular_core.Signal<TrendDirectionEnum>;
1232
1581
  isRevenueTrendPositive: _angular_core.Signal<boolean>;
1233
1582
  revenueTrendArrowPath: _angular_core.Signal<"M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z" | "M14.707 10.293a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L9 12.586V5a1 1 0 012 0v7.586l2.293-2.293a1 1 0 011.414 0z" | "M3 10h11m0 0l-4-4m4 4l-4 4">;
1234
1583
  lightModeTrendIconClass: _angular_core.Signal<"text-emerald-600" | "text-red-600">;
1235
1584
  darkModeTrendIconClass: _angular_core.Signal<"text-emerald-400" | "text-red-400">;
1236
- trendIconClass: _angular_core.Signal<"text-emerald-600" | "text-emerald-400" | "text-red-600" | "text-red-400">;
1585
+ trendIconClass: _angular_core.Signal<"text-emerald-400" | "text-emerald-600" | "text-red-400" | "text-red-600">;
1237
1586
  lightModeTrendValueClass: _angular_core.Signal<"text-emerald-600" | "text-red-600">;
1238
1587
  darkModeTrendValueClass: _angular_core.Signal<"text-emerald-400" | "text-red-400">;
1239
- trendValueClass: _angular_core.Signal<"text-emerald-600" | "text-emerald-400" | "text-red-600" | "text-red-400">;
1588
+ trendValueClass: _angular_core.Signal<"text-emerald-400" | "text-emerald-600" | "text-red-400" | "text-red-600">;
1240
1589
  formattedRevenueTrend: _angular_core.Signal<string>;
1241
1590
  formattedRevenueTarget: _angular_core.Signal<string>;
1242
1591
  hasRevenuePacing: _angular_core.Signal<boolean>;
@@ -1329,8 +1678,12 @@ declare class OverallAssessmentComponent {
1329
1678
  revenueTrendTooltip: _angular_core.Signal<TrendIndicatorTooltipContent | undefined>;
1330
1679
  private calculateOverallPacing;
1331
1680
  private getGradeExplanation;
1681
+ strengthsButtonClass: _angular_core.Signal<"bg-emerald-600 hover:bg-emerald-700 text-white hover:shadow-emerald-200" | "bg-emerald-500 hover:bg-emerald-600 text-slate-900 hover:shadow-emerald-500/50">;
1682
+ weaknessesButtonClass: _angular_core.Signal<"bg-red-600 hover:bg-red-700 text-white hover:shadow-red-200" | "bg-red-500 hover:bg-red-600 text-white hover:shadow-red-500/50">;
1683
+ openStrengthsModal(): void;
1684
+ openWeaknessesModal(): void;
1332
1685
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverallAssessmentComponent, never>;
1333
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverallAssessmentComponent, "symphiq-funnel-analysis-overall-assessment", never, { "assessment": { "alias": "assessment"; "required": false; "isSignal": true; }; "revenueMetric": { "alias": "revenueMetric"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isChartsLoading": { "alias": "isChartsLoading"; "required": false; "isSignal": true; }; }, { "scrollToSection": "scrollToSection"; }, never, never, true, never>;
1686
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverallAssessmentComponent, "symphiq-funnel-analysis-overall-assessment", never, { "assessment": { "alias": "assessment"; "required": false; "isSignal": true; }; "revenueMetric": { "alias": "revenueMetric"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isChartsLoading": { "alias": "isChartsLoading"; "required": false; "isSignal": true; }; "strengths": { "alias": "strengths"; "required": false; "isSignal": true; }; "weaknesses": { "alias": "weaknesses"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "scrollToSection": "scrollToSection"; }, never, never, true, never>;
1334
1687
  }
1335
1688
 
1336
1689
  interface CompetitiveStats {
@@ -1361,6 +1714,7 @@ declare class CompetitivePositioningSummaryComponent {
1361
1714
  description?: string;
1362
1715
  keyOpportunities?: string;
1363
1716
  } | undefined>;
1717
+ currencySymbol: _angular_core.InputSignal<string>;
1364
1718
  scrollToCompetitive: _angular_core.OutputEmitterRef<void>;
1365
1719
  isExpanded: _angular_core.WritableSignal<boolean>;
1366
1720
  private funnelOrderService;
@@ -1378,7 +1732,7 @@ declare class CompetitivePositioningSummaryComponent {
1378
1732
  getScoreDotClass(type: string): string;
1379
1733
  formatCategoryName(category: string): string;
1380
1734
  competitiveScoreTooltip: _angular_core.Signal<{
1381
- industry: any;
1735
+ industry: string;
1382
1736
  metricBenchmark: string;
1383
1737
  competitiveScore: "LEADING" | "COMPETITIVE" | "LAGGING";
1384
1738
  description: string;
@@ -1396,6 +1750,7 @@ declare class CompetitivePositioningSummaryComponent {
1396
1750
  };
1397
1751
  unit: string;
1398
1752
  }[];
1753
+ currencySymbol: string;
1399
1754
  }>;
1400
1755
  competitiveTooltip: _angular_core.Signal<{
1401
1756
  status: "COMPETITIVE";
@@ -1409,6 +1764,7 @@ declare class CompetitivePositioningSummaryComponent {
1409
1764
  };
1410
1765
  unit: string;
1411
1766
  }[];
1767
+ currencySymbol: string;
1412
1768
  }>;
1413
1769
  laggingTooltip: _angular_core.Signal<{
1414
1770
  status: "LAGGING";
@@ -1422,6 +1778,7 @@ declare class CompetitivePositioningSummaryComponent {
1422
1778
  };
1423
1779
  unit: string;
1424
1780
  }[];
1781
+ currencySymbol: string;
1425
1782
  }>;
1426
1783
  private getMetricsByStatus;
1427
1784
  getFunnelStageTooltip(funnelStage: string): {
@@ -1454,10 +1811,11 @@ declare class CompetitivePositioningSummaryComponent {
1454
1811
  };
1455
1812
  unit: string;
1456
1813
  }[];
1814
+ currencySymbol: string;
1457
1815
  };
1458
1816
  private extractMetricTooltipData;
1459
1817
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CompetitivePositioningSummaryComponent, never>;
1460
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitivePositioningSummaryComponent, "symphiq-competitive-positioning-summary", never, { "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "overallDescription": { "alias": "overallDescription"; "required": false; "isSignal": true; }; "competitiveBenchmark": { "alias": "competitiveBenchmark"; "required": false; "isSignal": true; }; }, { "scrollToCompetitive": "scrollToCompetitive"; }, never, never, true, never>;
1818
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitivePositioningSummaryComponent, "symphiq-competitive-positioning-summary", never, { "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "overallDescription": { "alias": "overallDescription"; "required": false; "isSignal": true; }; "competitiveBenchmark": { "alias": "competitiveBenchmark"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "scrollToCompetitive": "scrollToCompetitive"; }, never, never, true, never>;
1461
1819
  }
1462
1820
 
1463
1821
  declare class SkeletonLoaderComponent {
@@ -1499,26 +1857,26 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1499
1857
  constructor();
1500
1858
  analysisData: _angular_core.Signal<FunnelAnalysisInterface | undefined>;
1501
1859
  title: _angular_core.Signal<string>;
1502
- analysis: _angular_core.Signal<_jebgem_model.PerformanceOverviewStructuredV3Interface>;
1503
- overallAssessment: _angular_core.Signal<any>;
1860
+ analysis: _angular_core.Signal<PerformanceOverviewStructuredV3Interface>;
1861
+ overallAssessment: _angular_core.Signal<OverallAssessmentInterface>;
1504
1862
  metrics: _angular_core.Signal<PerformanceMetricInterface[]>;
1505
- insights: _angular_core.Signal<any>;
1506
- insightsCount: _angular_core.Signal<any>;
1863
+ insights: _angular_core.Signal<InsightBlockInterface[]>;
1864
+ insightsCount: _angular_core.Signal<number>;
1507
1865
  revenueMetric: _angular_core.Signal<PerformanceMetricInterface | undefined>;
1508
1866
  topMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
1509
1867
  formattedRevenueValue: _angular_core.Signal<string>;
1510
1868
  formattedRevenueTrend: _angular_core.Signal<string>;
1511
- revenueStatusIcon: _angular_core.Signal<"" | "" | "→" | "">;
1869
+ revenueStatusIcon: _angular_core.Signal<"" | "" | "→" | "">;
1512
1870
  hasCompetitiveData: _angular_core.Signal<boolean>;
1513
1871
  hasOverallCompetitiveBenchmark: _angular_core.Signal<boolean>;
1514
- overallCompetitiveDescription: _angular_core.Signal<any>;
1872
+ overallCompetitiveDescription: _angular_core.Signal<string>;
1515
1873
  getOverallCompetitiveLabel(): string;
1516
1874
  getOverallCompetitiveIcon(): string;
1517
1875
  competitiveScore: _angular_core.Signal<string>;
1518
1876
  gradeTooltip: _angular_core.Signal<{
1519
1877
  title: string;
1520
- grade: any;
1521
- explanation: any;
1878
+ grade: string;
1879
+ explanation: string;
1522
1880
  }>;
1523
1881
  revenueTooltip: _angular_core.Signal<{
1524
1882
  chartData: {
@@ -1533,6 +1891,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1533
1891
  unit?: string;
1534
1892
  category?: string;
1535
1893
  isInverseMetric?: boolean;
1894
+ currencySymbol?: string;
1536
1895
  } | {
1537
1896
  metricName: string;
1538
1897
  currentValue: number;
@@ -1544,10 +1903,10 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1544
1903
  progressPercent: number;
1545
1904
  }>;
1546
1905
  narrativeTooltip: _angular_core.Signal<{
1547
- narrative: any;
1906
+ narrative: string;
1548
1907
  }>;
1549
1908
  competitiveTooltip: _angular_core.Signal<{
1550
- industry: any;
1909
+ industry: string;
1551
1910
  metricBenchmark: string;
1552
1911
  competitiveScore: "LEADING" | "COMPETITIVE" | "LAGGING";
1553
1912
  description: string;
@@ -1555,19 +1914,22 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1555
1914
  }>;
1556
1915
  insightsTooltip: _angular_core.Signal<{
1557
1916
  title: string;
1558
- insights: any;
1917
+ insights: {
1918
+ title: string;
1919
+ priority: number;
1920
+ }[];
1559
1921
  remaining: number;
1560
1922
  }>;
1561
1923
  overallCompetitiveTooltip: _angular_core.Signal<{
1562
- industry: any;
1563
- metricBenchmark: any;
1564
- competitiveScore: any;
1565
- description: any;
1566
- keyOpportunities: any;
1924
+ industry: string;
1925
+ metricBenchmark: string;
1926
+ competitiveScore: string;
1927
+ description: string;
1928
+ keyOpportunities: string;
1567
1929
  }>;
1568
1930
  overallCompetitiveDescriptionTooltip: _angular_core.Signal<{
1569
1931
  title: string;
1570
- narrative: any;
1932
+ narrative: string;
1571
1933
  }>;
1572
1934
  containerClass: _angular_core.Signal<string>;
1573
1935
  headerClass: _angular_core.Signal<string>;
@@ -1590,7 +1952,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1590
1952
  buttonClass: _angular_core.Signal<string>;
1591
1953
  competitiveBadgeClass: _angular_core.Signal<string>;
1592
1954
  shouldPulseCompetitiveBadge: _angular_core.Signal<boolean>;
1593
- overallCompetitiveStatusBadgeClass: _angular_core.Signal<"border-2 bg-gradient-to-r from-emerald-500/30 to-emerald-500/20 text-emerald-400 border-emerald-500/40 shadow-lg shadow-emerald-500/20" | "border-2 bg-gradient-to-r from-blue-500/30 to-blue-500/20 text-blue-400 border-blue-500/40 shadow-lg shadow-blue-500/20" | "border-2 bg-gradient-to-r from-orange-500/30 to-orange-500/20 text-orange-400 border-orange-500/40 shadow-lg shadow-orange-500/20" | "border-2 bg-gradient-to-r from-slate-500/20 to-slate-500/10 text-slate-400 border-slate-500/30 shadow-lg shadow-slate-500/20" | "border-2 bg-gradient-to-br from-emerald-100/90 to-emerald-50/90 text-emerald-700 border-emerald-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-blue-100/90 to-blue-50/90 text-blue-700 border-blue-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-orange-100/90 to-orange-50/90 text-orange-700 border-orange-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-slate-100/90 to-slate-50/90 text-slate-700 border-slate-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]">;
1955
+ overallCompetitiveStatusBadgeClass: _angular_core.Signal<"border-2 bg-gradient-to-br from-emerald-100/90 to-emerald-50/90 text-emerald-700 border-emerald-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-blue-100/90 to-blue-50/90 text-blue-700 border-blue-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-orange-100/90 to-orange-50/90 text-orange-700 border-orange-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-slate-100/90 to-slate-50/90 text-slate-700 border-slate-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-r from-emerald-500/30 to-emerald-500/20 text-emerald-400 border-emerald-500/40 shadow-lg shadow-emerald-500/20" | "border-2 bg-gradient-to-r from-blue-500/30 to-blue-500/20 text-blue-400 border-blue-500/40 shadow-lg shadow-blue-500/20" | "border-2 bg-gradient-to-r from-orange-500/30 to-orange-500/20 text-orange-400 border-orange-500/40 shadow-lg shadow-orange-500/20" | "border-2 bg-gradient-to-r from-slate-500/20 to-slate-500/10 text-slate-400 border-slate-500/30 shadow-lg shadow-slate-500/20">;
1594
1956
  shouldPulseOverallCompetitive: _angular_core.Signal<boolean>;
1595
1957
  statusIconClass: _angular_core.Signal<string>;
1596
1958
  insightsCardClass: _angular_core.Signal<string>;
@@ -1613,59 +1975,20 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1613
1975
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqFunnelAnalysisPreviewComponent, "symphiq-funnel-analysis-preview", never, { "analysisInput": { "alias": "funnelAnalysis"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "useSampleData": { "alias": "useSampleData"; "required": false; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; }, { "onViewAnalysis": "onViewAnalysis"; }, never, never, true, never>;
1614
1976
  }
1615
1977
 
1616
- type JourneyStep = 'business-analysis' | 'revenue-targets' | 'funnel-analysis' | 'shop-analysis' | 'focus-areas-analysis' | 'metrics-analysis';
1617
- interface UserPreferences {
1618
- viewMode: ViewMode;
1619
- currentJourneyStep: JourneyStep;
1620
- completedSteps: JourneyStep[];
1621
- hasSeenWelcome: boolean;
1622
- }
1623
- declare class UserPreferencesService {
1624
- private readonly STORAGE_KEY;
1625
- private preferences;
1626
- constructor();
1627
- getPreferences(): _angular_core.Signal<UserPreferences>;
1628
- setViewMode(mode: ViewMode): void;
1629
- setCurrentJourneyStep(step: JourneyStep): void;
1630
- completeJourneyStep(step: JourneyStep): void;
1631
- setHasSeenWelcome(seen: boolean): void;
1632
- resetPreferences(): void;
1633
- private loadPreferences;
1634
- private savePreferences;
1635
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserPreferencesService, never>;
1636
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<UserPreferencesService>;
1637
- }
1638
-
1639
- type ComponentViewMode = 'simplified' | 'compact' | 'expanded';
1640
-
1641
1978
  declare class ProfileItemLookupService {
1642
1979
  private profileData;
1643
1980
  setProfile(profile: ProfileInterface | undefined): void;
1644
1981
  findItemById(id: string): ProfileItemInterface | undefined;
1645
1982
  findItemsByIds(ids: string[]): ProfileItemInterface[];
1983
+ findItemWithContext(id: string): {
1984
+ item: ProfileItemInterface;
1985
+ sectionTitle: string;
1986
+ subsectionTitle: string;
1987
+ } | undefined;
1646
1988
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemLookupService, never>;
1647
1989
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileItemLookupService>;
1648
1990
  }
1649
1991
 
1650
- declare class ProfileContextService {
1651
- private contextIndex;
1652
- indexProfile(sections: any[], recommendations?: ProfileAnalysisRecommendationInterface[]): void;
1653
- getRegions(): ProfileItemInterface[];
1654
- getSeasons(): ProfileItemInterface[];
1655
- getPriceTiers(): ProfileItemInterface[];
1656
- getCustomerSegments(): ProfileItemInterface[];
1657
- getProductCategories(): ProfileItemInterface[];
1658
- getFocusAreas(): ProfileItemInterface[];
1659
- getItemById(id: string): ProfileItemInterface | undefined;
1660
- getItemsByIds(ids: string[]): ProfileItemInterface[];
1661
- getCompetitors(): ProfileItemInterface[];
1662
- getRecommendationById(id: string): ProfileAnalysisRecommendationInterface | undefined;
1663
- getCompetitorsByIds(ids: string[]): ProfileItemInterface[];
1664
- getRecommendationsByProfileItemIds(itemIds: string[]): ProfileAnalysisRecommendationInterface[];
1665
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileContextService, never>;
1666
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileContextService>;
1667
- }
1668
-
1669
1992
  declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, AfterViewInit, OnDestroy {
1670
1993
  requestedByUser?: {
1671
1994
  firstName: string;
@@ -1679,24 +2002,30 @@ declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, After
1679
2002
  useSampleData: boolean;
1680
2003
  profile?: ProfileInterface;
1681
2004
  parentHeaderOffset: number;
2005
+ onboarded: boolean;
1682
2006
  protected headerScrollService: HeaderScrollService;
1683
2007
  protected lookupService: ProfileItemLookupService;
1684
2008
  protected navigationService: NavigationStateService;
1685
2009
  protected profileContextService: ProfileContextService;
1686
2010
  protected searchService: BusinessProfileSearchService;
1687
- protected userPreferencesService: UserPreferencesService;
2011
+ protected modalService: ModalService;
1688
2012
  protected currentProfile: _angular_core.WritableSignal<ProfileInterface | undefined>;
1689
2013
  protected scrollProgress: _angular_core.Signal<number>;
1690
2014
  protected isLightMode: _angular_core.Signal<boolean>;
1691
- protected isCompactView: _angular_core.WritableSignal<boolean>;
1692
- protected currentComponentViewMode: _angular_core.WritableSignal<ComponentViewMode>;
2015
+ protected displayMode: _angular_core.WritableSignal<DisplayModeEnum>;
2016
+ protected isCompactView: _angular_core.Signal<boolean>;
2017
+ protected isSimplifiedView: _angular_core.Signal<boolean>;
1693
2018
  protected currentSectionTitle: _angular_core.WritableSignal<string>;
1694
2019
  protected currentSubsectionTitle: _angular_core.WritableSignal<string>;
1695
2020
  protected sectionTitleFading: _angular_core.WritableSignal<boolean>;
1696
2021
  protected subsectionTitleFading: _angular_core.WritableSignal<boolean>;
1697
2022
  protected selectedSearchIndex: _angular_core.WritableSignal<number>;
1698
- protected userPreferences: _angular_core.Signal<UserPreferences>;
2023
+ protected isViewModeSwitcherOpen: _angular_core.WritableSignal<boolean>;
2024
+ protected isViewModeSwitching: _angular_core.WritableSignal<boolean>;
1699
2025
  protected sections: _angular_core.Signal<ProfileSectionInterface[]>;
2026
+ protected recommendationItems: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
2027
+ protected nonRecommendationSections: _angular_core.Signal<ProfileSectionInterface[]>;
2028
+ protected displayModeLabel: _angular_core.Signal<"Simplified" | "Compact" | "Expanded" | "View">;
1700
2029
  private subsectionObserver?;
1701
2030
  private sectionUpdateTimeout?;
1702
2031
  private subsectionUpdateTimeout?;
@@ -1710,18 +2039,21 @@ declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, After
1710
2039
  protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
1711
2040
  constructor();
1712
2041
  onScroll(): void;
1713
- protected setViewMode(mode: ComponentViewMode): void;
1714
2042
  protected toggleExpandedView(): void;
1715
- protected isSimplifiedMode(): boolean;
1716
- protected onWelcomeGetStarted(): void;
1717
- protected onWelcomeDismiss(): void;
1718
- protected onAnalyzeFunnel(): void;
1719
- protected onExploreMore(): void;
2043
+ protected openViewModeSwitcher(): void;
2044
+ protected closeViewModeSwitcher(): void;
2045
+ protected handleDisplayModeChange(mode: DisplayModeEnum): void;
2046
+ protected openRecommendationDetailsModal(recommendation: ProfileAnalysisRecommendationInterface): void;
2047
+ protected getViewModeButtonClasses(): string;
1720
2048
  handleKeyDown(event: KeyboardEvent): void;
1721
2049
  protected openSearch(): void;
1722
2050
  protected closeSearch(): void;
1723
2051
  protected onSearchChange(query: string): void;
1724
2052
  protected onSearchResultSelected(result: BusinessSearchResult): void;
2053
+ protected handleViewInContext(event: {
2054
+ itemId: string;
2055
+ itemType?: string;
2056
+ }): void;
1725
2057
  private scrollToSearchResult;
1726
2058
  private highlightAndPulseItem;
1727
2059
  ngOnInit(): void;
@@ -1739,7 +2071,7 @@ declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, After
1739
2071
  protected getSpinnerClasses(): string;
1740
2072
  protected trackBySectionId(index: number, section: ProfileSectionInterface): string | number;
1741
2073
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqBusinessAnalysisDashboardComponent, never>;
1742
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqBusinessAnalysisDashboardComponent, "symphiq-business-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; }; "scrollElement": { "alias": "scrollElement"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "useSampleData": { "alias": "useSampleData"; "required": false; }; "profile": { "alias": "profile"; "required": false; }; "parentHeaderOffset": { "alias": "parentHeaderOffset"; "required": false; }; }, {}, never, never, true, never>;
2074
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqBusinessAnalysisDashboardComponent, "symphiq-business-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; }; "scrollElement": { "alias": "scrollElement"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "useSampleData": { "alias": "useSampleData"; "required": false; }; "profile": { "alias": "profile"; "required": false; }; "parentHeaderOffset": { "alias": "parentHeaderOffset"; "required": false; }; "onboarded": { "alias": "onboarded"; "required": false; }; }, {}, never, never, true, never>;
1743
2075
  }
1744
2076
 
1745
2077
  declare class ProfileSectionComponent {
@@ -1749,11 +2081,12 @@ declare class ProfileSectionComponent {
1749
2081
  viewMode: ViewModeEnum;
1750
2082
  forceExpanded: boolean;
1751
2083
  protected visibleSubsections: _angular_core.Signal<ProfileSubsectionInterface[]>;
2084
+ protected isDark: _angular_core.Signal<boolean>;
2085
+ protected containerClasses: _angular_core.Signal<"relative" | "relative bg-slate-50/50">;
2086
+ protected iconContainerClasses: _angular_core.Signal<"p-4 rounded-2xl bg-gradient-to-br from-blue-500/20 to-purple-500/20 text-blue-400" | "p-4 rounded-2xl bg-gradient-to-br from-blue-100 to-purple-100 text-blue-600">;
2087
+ protected titleClasses: _angular_core.Signal<"text-3xl font-bold text-white" | "text-3xl font-bold text-slate-900">;
2088
+ protected dividerClasses: _angular_core.Signal<"h-1 w-24 rounded-full mt-3 bg-gradient-to-r from-blue-500 to-purple-500" | "h-1 w-24 rounded-full mt-3 bg-gradient-to-r from-blue-600 to-purple-600">;
1752
2089
  protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
1753
- protected getContainerClasses(): string;
1754
- protected getIconContainerClasses(): string;
1755
- protected getTitleClasses(): string;
1756
- protected getDividerClasses(): string;
1757
2090
  protected trackBySubsectionId(index: number, subsection: ProfileSubsectionInterface): string | number;
1758
2091
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSectionComponent, never>;
1759
2092
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileSectionComponent, "symphiq-profile-section", never, { "section": { "alias": "section"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; }, {}, never, never, true, never>;
@@ -1768,16 +2101,24 @@ declare class ProfileSubsectionComponent {
1768
2101
  private sanitizer;
1769
2102
  private profileContextService;
1770
2103
  protected ProfileItemTypeEnum: typeof ProfileItemTypeEnum;
2104
+ protected isDark: _angular_core.Signal<boolean>;
1771
2105
  protected sortedItems: _angular_core.Signal<ProfileItemInterface[]>;
2106
+ private contentCache;
1772
2107
  protected formatContentWithLineBreaks(content: string): SafeHtml;
1773
- protected getContainerClasses(): string;
1774
- protected getIconClasses(): string;
1775
- protected getTitleClasses(): string;
1776
- protected getContentClasses(): string;
1777
- protected getVisualContainerClasses(): string;
2108
+ protected containerClasses: _angular_core.Signal<"p-6 rounded-xl bg-slate-800/30 border border-slate-700/50" | "p-6 rounded-xl bg-white border border-slate-200 shadow-sm">;
2109
+ protected iconClasses: _angular_core.Signal<"p-2 rounded-lg flex-shrink-0 bg-purple-500/10 text-purple-400" | "p-2 rounded-lg flex-shrink-0 bg-purple-50 text-purple-600">;
2110
+ protected titleClasses: _angular_core.Signal<"text-xl font-bold text-white" | "text-xl font-bold text-slate-900">;
2111
+ protected contentClasses: _angular_core.Signal<"mt-2 text-base leading-relaxed text-slate-300" | "mt-2 text-base leading-relaxed text-slate-600">;
2112
+ protected visualContainerClasses: _angular_core.Signal<"mb-6 lg:float-left lg:mr-6 lg:mb-4 lg:max-w-[66%]" | "mb-6 lg:float-right lg:ml-6 lg:mb-4 lg:max-w-[66%]">;
1778
2113
  protected getDisplayContent(): string | null;
1779
2114
  protected trackByItemId(index: number, item: ProfileItemInterface): string | number;
1780
- protected getCompetitiveBenchmark(): any;
2115
+ protected getCompetitiveBenchmark(): {
2116
+ industry: string;
2117
+ metricBenchmark: string | null;
2118
+ competitiveScore: 'LEADING' | 'COMPETITIVE' | 'LAGGING';
2119
+ description: string;
2120
+ keyOpportunities: string;
2121
+ } | undefined;
1781
2122
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSubsectionComponent, never>;
1782
2123
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileSubsectionComponent, "symphiq-profile-subsection", never, { "subsection": { "alias": "subsection"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "parentSectionTitle": { "alias": "parentSectionTitle"; "required": false; }; "subsectionIndex": { "alias": "subsectionIndex"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; }, {}, never, never, true, never>;
1783
2124
  }
@@ -1789,6 +2130,8 @@ declare class ProfileItemCardComponent {
1789
2130
  forceExpanded: boolean;
1790
2131
  animationIndex: number;
1791
2132
  isLoading: boolean;
2133
+ inModalContext: boolean;
2134
+ isCompactMode: boolean;
1792
2135
  protected isRecommendation(): boolean;
1793
2136
  protected getCardClasses(): string;
1794
2137
  protected getIconClasses(): string;
@@ -1796,7 +2139,7 @@ declare class ProfileItemCardComponent {
1796
2139
  protected getValueClasses(): string;
1797
2140
  protected getItemIcon(): IconObjectInterface$1 | undefined;
1798
2141
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemCardComponent, never>;
1799
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileItemCardComponent, "symphiq-profile-item-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "subsectionId": { "alias": "subsectionId"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, {}, never, never, true, never>;
2142
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileItemCardComponent, "symphiq-profile-item-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "subsectionId": { "alias": "subsectionId"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "inModalContext": { "alias": "inModalContext"; "required": false; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; }; }, {}, never, never, true, never>;
1800
2143
  }
1801
2144
 
1802
2145
  declare class NapkinVisualPlaceholderComponent implements OnInit, OnChanges {
@@ -1875,7 +2218,7 @@ declare class FloatingTocComponent implements OnInit, OnDestroy {
1875
2218
  protected tocSections: _angular_core.Signal<{
1876
2219
  id: string;
1877
2220
  title: string;
1878
- icon: _jebgem_model.IconObjectInterface | undefined;
2221
+ icon: IconObjectInterface$1 | undefined;
1879
2222
  subsections: {
1880
2223
  id: string;
1881
2224
  title: string;
@@ -1936,8 +2279,13 @@ declare class FloatingBackButtonComponent implements OnInit, OnDestroy {
1936
2279
 
1937
2280
  declare class BusinessAnalysisModalComponent implements OnInit {
1938
2281
  isLightMode: _angular_core.InputSignal<boolean>;
2282
+ viewInContextRequested: _angular_core.OutputEmitterRef<{
2283
+ itemId: string;
2284
+ itemType?: string;
2285
+ }>;
1939
2286
  private modalService;
1940
2287
  private sanitizer;
2288
+ modalContent?: ElementRef<HTMLDivElement>;
1941
2289
  isOpen: _angular_core.WritableSignal<boolean>;
1942
2290
  modalType: _angular_core.WritableSignal<string | null>;
1943
2291
  modalTitle: _angular_core.WritableSignal<string>;
@@ -1951,6 +2299,10 @@ declare class BusinessAnalysisModalComponent implements OnInit {
1951
2299
  actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
1952
2300
  viewMode: ViewModeEnum;
1953
2301
  } | null>;
2302
+ itemDetailModalData: _angular_core.WritableSignal<ItemDetailModalData | null>;
2303
+ navigationStack: _angular_core.WritableSignal<ItemDetailModalData[]>;
2304
+ itemDetailData: _angular_core.Signal<ItemDetailModalData | null>;
2305
+ previousState: _angular_core.WritableSignal<any>;
1954
2306
  visualizationType: _angular_core.Signal<"horizontal-bar" | "circular-progress" | "napkin-visual" | "custom" | null>;
1955
2307
  horizontalBarData: _angular_core.Signal<{
1956
2308
  percentage: number;
@@ -1972,9 +2324,210 @@ declare class BusinessAnalysisModalComponent implements OnInit {
1972
2324
  constructor();
1973
2325
  ngOnInit(): void;
1974
2326
  getSanitizedSvg(): SafeHtml;
2327
+ handleViewInContext(): void;
2328
+ handleNavigateBack(event?: Event): void;
2329
+ handleNavigateToBreadcrumb(index: number, event?: Event): void;
2330
+ scrollModalToTop(): void;
2331
+ protected hasNavigationHistory(): boolean;
2332
+ protected getBreadcrumbs(): Array<{
2333
+ label: string;
2334
+ }>;
2335
+ protected getBreadcrumbClasses(): string;
2336
+ protected getBackButtonClasses(): string;
2337
+ protected getBreadcrumbLinkClasses(): string;
1975
2338
  closeModal(): void;
1976
2339
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BusinessAnalysisModalComponent, never>;
1977
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BusinessAnalysisModalComponent, "symphiq-business-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2340
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BusinessAnalysisModalComponent, "symphiq-business-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, { "viewInContextRequested": "viewInContextRequested"; }, never, never, true, never>;
2341
+ }
2342
+
2343
+ type ProfileModalData = {
2344
+ goal: GoalV3Interface;
2345
+ viewMode: ViewModeEnum;
2346
+ } | {
2347
+ goal: GoalV3Interface;
2348
+ viewMode: ViewModeEnum;
2349
+ } | {
2350
+ objective: ObjectiveV3Interface;
2351
+ goalTitle?: string;
2352
+ viewMode: ViewModeEnum;
2353
+ } | {
2354
+ strategy: StrategyV3Interface;
2355
+ objectiveTitle?: string;
2356
+ goalTitle?: string;
2357
+ viewMode: ViewModeEnum;
2358
+ } | {
2359
+ category: OperationalCategoryInterface;
2360
+ viewMode: ViewModeEnum;
2361
+ scrollToSection?: 'strengths' | 'gaps' | 'opportunities';
2362
+ } | {
2363
+ strength: CategoryStrengthInterface;
2364
+ categoryTitle: string;
2365
+ viewMode: ViewModeEnum;
2366
+ } | {
2367
+ gap: CategoryGapInterface;
2368
+ categoryTitle: string;
2369
+ viewMode: ViewModeEnum;
2370
+ } | {
2371
+ opportunity: CategoryOpportunityInterface;
2372
+ categoryTitle: string;
2373
+ viewMode: ViewModeEnum;
2374
+ } | null;
2375
+ declare class SymphiqProfileAnalysisDashboardComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
2376
+ funnelModalComponent?: ModalComponent;
2377
+ viewMode: ViewModeEnum;
2378
+ constructor();
2379
+ embedded: boolean;
2380
+ profileAnalysis?: ProfileAnalysisInterface;
2381
+ profile?: ProfileInterface;
2382
+ funnelAnalysis?: FunnelAnalysisInterface;
2383
+ analysisType: ProfileAnalysisTypeEnum;
2384
+ onboarded: boolean;
2385
+ useSampleData: boolean;
2386
+ protected funnelAnalysisSignal: _angular_core.WritableSignal<FunnelAnalysisInterface | undefined>;
2387
+ protected readonly headerScrollService: HeaderScrollService;
2388
+ protected readonly modalService: ModalService;
2389
+ protected readonly viewModeService: ViewModeService;
2390
+ protected readonly profileContextService: ProfileContextService;
2391
+ protected readonly profileItemLookupService: ProfileItemLookupService;
2392
+ protected readonly IconSourceEnum: typeof IconSourceEnum;
2393
+ protected currentAnalysis: _angular_core.WritableSignal<ProfileAnalysisInterface | undefined>;
2394
+ protected scrollProgress: _angular_core.WritableSignal<number>;
2395
+ protected currentDisplayMode: _angular_core.WritableSignal<DisplayModeEnum>;
2396
+ protected isSearchOpen: _angular_core.WritableSignal<boolean>;
2397
+ protected isViewModeSwitcherOpen: _angular_core.WritableSignal<boolean>;
2398
+ protected modalType: _angular_core.WritableSignal<string | null>;
2399
+ protected modalData: _angular_core.WritableSignal<ProfileModalData>;
2400
+ protected currentModalNavigationStack: _angular_core.WritableSignal<ModalState[]>;
2401
+ protected isLightMode: _angular_core.Signal<boolean>;
2402
+ protected isSimplifiedView: _angular_core.Signal<boolean>;
2403
+ protected executiveSummary: _angular_core.Signal<{
2404
+ gradeRationale: string | undefined;
2405
+ overallGrade?: _jebgem_model.OverallGradeEnum;
2406
+ operationalMaturity?: _jebgem_model.OperationalMaturityEnum;
2407
+ narrative?: string;
2408
+ keyStrengths?: _jebgem_model.KeyStrengthInterface[];
2409
+ criticalGaps?: _jebgem_model.CriticalGapInterface[];
2410
+ quickWins?: _jebgem_model.QuickWinItemInterface[];
2411
+ napkinVisual?: _jebgem_model.NapkinVisualInterface;
2412
+ } | undefined>;
2413
+ protected sections: _angular_core.Signal<ProfileAnalysisSectionV3Interface[] | undefined>;
2414
+ protected allGoals: _angular_core.Signal<GoalV3Interface[]>;
2415
+ protected strategicRoadmapGoals: _angular_core.Signal<GoalV3Interface[]>;
2416
+ protected nonStrategicSections: _angular_core.Signal<ProfileAnalysisSectionV3Interface[]>;
2417
+ protected tocSections: _angular_core.Signal<{
2418
+ id: string;
2419
+ title: string;
2420
+ subsections: never[];
2421
+ }[]>;
2422
+ protected displayModeLabel: _angular_core.Signal<string>;
2423
+ protected allMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
2424
+ protected allCharts: _angular_core.Signal<AiChartInterface[]>;
2425
+ protected allInsights: _angular_core.Signal<_jebgem_model.InsightBlockInterface[]>;
2426
+ protected allBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
2427
+ onWindowScroll(): void;
2428
+ ngOnChanges(changes: SimpleChanges): void;
2429
+ ngOnInit(): void;
2430
+ ngAfterViewInit(): void;
2431
+ ngOnDestroy(): void;
2432
+ protected openSearch(): void;
2433
+ protected closeSearch(): void;
2434
+ protected openViewModeSwitcher(): void;
2435
+ protected closeViewModeSwitcher(): void;
2436
+ protected openGoalModal(goal: GoalV3Interface): void;
2437
+ protected getCurrentModalState(): ModalState;
2438
+ protected getGoalDetailData(): {
2439
+ goal: GoalV3Interface;
2440
+ viewMode: ViewModeEnum;
2441
+ } | null;
2442
+ protected getObjectiveStrategiesData(): {
2443
+ objective: ObjectiveV3Interface;
2444
+ goalTitle?: string;
2445
+ viewMode: ViewModeEnum;
2446
+ } | null;
2447
+ protected getStrategyRecommendationsData(): {
2448
+ strategy: StrategyV3Interface;
2449
+ objectiveTitle?: string;
2450
+ goalTitle?: string;
2451
+ viewMode: ViewModeEnum;
2452
+ } | null;
2453
+ protected getCategoryDetailData(): {
2454
+ category: OperationalCategoryInterface;
2455
+ viewMode: ViewModeEnum;
2456
+ scrollToSection?: 'strengths' | 'gaps' | 'opportunities';
2457
+ } | null;
2458
+ protected getStrengthDetailData(): {
2459
+ strength: CategoryStrengthInterface;
2460
+ categoryTitle: string;
2461
+ viewMode: ViewModeEnum;
2462
+ } | null;
2463
+ protected getGapDetailData(): {
2464
+ gap: CategoryGapInterface;
2465
+ categoryTitle: string;
2466
+ viewMode: ViewModeEnum;
2467
+ } | null;
2468
+ protected getOpportunityDetailData(): {
2469
+ opportunity: CategoryOpportunityInterface;
2470
+ categoryTitle: string;
2471
+ viewMode: ViewModeEnum;
2472
+ } | null;
2473
+ protected handleDisplayModeChange(mode: DisplayModeEnum): void;
2474
+ protected getAnalysisTypeLabel(): string;
2475
+ protected getGradeDisplay(): string;
2476
+ protected getContainerClasses(): string;
2477
+ protected getBannerClasses(): string;
2478
+ protected getSectionTitleClasses(): string;
2479
+ protected getSubheadingClasses(): string;
2480
+ protected getTextClasses(): string;
2481
+ protected getNarrativeClasses(): string;
2482
+ protected getKeyStrengthsStatCardClasses(): string;
2483
+ protected getKeyStrengthsStatLabelClasses(): string;
2484
+ protected getKeyStrengthsStatValueClasses(): string;
2485
+ protected getKeyStrengthsButtonTextClasses(): string;
2486
+ protected getCriticalGapsStatCardClasses(): string;
2487
+ protected getCriticalGapsStatLabelClasses(): string;
2488
+ protected getCriticalGapsStatValueClasses(): string;
2489
+ protected getCriticalGapsButtonTextClasses(): string;
2490
+ protected getQuickWinsStatCardClasses(): string;
2491
+ protected getQuickWinsStatLabelClasses(): string;
2492
+ protected getQuickWinsStatValueClasses(): string;
2493
+ protected getQuickWinsButtonTextClasses(): string;
2494
+ protected getQuickWinCardClasses(): string;
2495
+ protected getQuickWinTextClasses(): string;
2496
+ protected getNumberBadgeClasses(): string;
2497
+ protected getEffortBadgeClasses(effort?: string): string;
2498
+ protected getImpactBadgeClasses(impact?: string): string;
2499
+ protected getMetaTextClasses(): string;
2500
+ protected formatLabel(label?: string): string;
2501
+ protected getSectionCardClasses(): string;
2502
+ protected getSectionIconClasses(): string;
2503
+ protected getSectionDescriptionClasses(): string;
2504
+ private formatGradeInText;
2505
+ protected onKeyStrengthsClick(summary: ExecutiveSummaryInterface): void;
2506
+ protected onCriticalGapsClick(summary: ExecutiveSummaryInterface): void;
2507
+ protected scrollToQuickWins(): void;
2508
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqProfileAnalysisDashboardComponent, never>;
2509
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqProfileAnalysisDashboardComponent, "symphiq-profile-analysis-dashboard", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; "profileAnalysis": { "alias": "profileAnalysis"; "required": false; }; "profile": { "alias": "profile"; "required": false; }; "funnelAnalysis": { "alias": "funnelAnalysis"; "required": false; }; "analysisType": { "alias": "analysisType"; "required": false; }; "onboarded": { "alias": "onboarded"; "required": false; }; "useSampleData": { "alias": "useSampleData"; "required": false; }; }, {}, never, never, true, never>;
2510
+ }
2511
+
2512
+ declare class ShopWelcomeBannerComponent {
2513
+ viewMode: ViewModeEnum;
2514
+ businessName: string;
2515
+ onboarded: boolean;
2516
+ protected containerClasses(): string;
2517
+ protected contentClasses(): string;
2518
+ protected iconContainerClasses(): string;
2519
+ protected titleClasses(): string;
2520
+ protected textClasses(): string;
2521
+ protected highlightBoxClasses(): string;
2522
+ protected highlightIconClasses(): string;
2523
+ protected highlightTitleClasses(): string;
2524
+ protected highlightListClasses(): string;
2525
+ protected nextStepsBoxClasses(): string;
2526
+ protected nextStepsIconClasses(): string;
2527
+ protected nextStepsTitleClasses(): string;
2528
+ protected nextStepsTextClasses(): string;
2529
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShopWelcomeBannerComponent, never>;
2530
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShopWelcomeBannerComponent, "symphiq-shop-welcome-banner", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "businessName": { "alias": "businessName"; "required": false; }; "onboarded": { "alias": "onboarded"; "required": false; }; }, {}, never, never, true, never>;
1978
2531
  }
1979
2532
 
1980
2533
  declare class HorizontalBarComponent implements OnInit, OnDestroy {
@@ -2044,7 +2597,7 @@ declare class VisualizationContainerComponent {
2044
2597
  data: unknown;
2045
2598
  }>;
2046
2599
  containerClass: _angular_core.Signal<"" | "cursor-pointer">;
2047
- iconClass: _angular_core.Signal<"text-slate-400 group-hover:text-blue-500" | "text-slate-500 group-hover:text-blue-400">;
2600
+ iconClass: _angular_core.Signal<"text-slate-500 group-hover:text-blue-400" | "text-slate-400 group-hover:text-blue-500">;
2048
2601
  onExpandClick(event: Event): void;
2049
2602
  onVisualizationClick(event: Event): void;
2050
2603
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<VisualizationContainerComponent, never>;
@@ -2084,12 +2637,13 @@ declare class SymphiqIconComponent {
2084
2637
  declare class SectionDividerComponent {
2085
2638
  viewMode: ViewModeEnum;
2086
2639
  animationDelay: string;
2640
+ sectionIcon?: IconObjectInterface$1;
2087
2641
  private subsectionsSignal;
2088
2642
  set subsections(value: ProfileSubsectionInterface[] | undefined);
2089
- protected displayIcons: _angular_core.Signal<_jebgem_model.IconObjectInterface[]>;
2643
+ protected displayIcons: _angular_core.Signal<IconObjectInterface$1[]>;
2090
2644
  protected isLightMode(): boolean;
2091
2645
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionDividerComponent, never>;
2092
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionDividerComponent, "symphiq-section-divider", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; "subsections": { "alias": "subsections"; "required": false; }; }, {}, never, never, true, never>;
2646
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionDividerComponent, "symphiq-section-divider", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; "sectionIcon": { "alias": "sectionIcon"; "required": false; }; "subsections": { "alias": "subsections"; "required": false; }; }, {}, never, never, true, never>;
2093
2647
  }
2094
2648
 
2095
2649
  declare class SearchButtonComponent {
@@ -2128,23 +2682,149 @@ declare class SearchModalComponent {
2128
2682
  iconClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
2129
2683
  clearButtonClass: _angular_core.Signal<"bg-slate-100 text-slate-600 hover:bg-slate-200" | "bg-slate-700 text-slate-300 hover:bg-slate-600">;
2130
2684
  closeButtonClass: _angular_core.Signal<"text-slate-400 hover:text-slate-600 hover:bg-slate-100" | "text-slate-500 hover:text-slate-300 hover:bg-slate-700">;
2131
- resultsContainerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
2685
+ resultsContainerClass: _angular_core.Signal<"border-slate-700" | "border-slate-200">;
2132
2686
  resultTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2133
- resultDescClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2687
+ resultDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2134
2688
  breadcrumbClass: _angular_core.Signal<string>;
2135
2689
  typeBadgeClass: _angular_core.Signal<"bg-slate-100 text-slate-600" | "bg-slate-700 text-slate-300">;
2136
2690
  arrowClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
2137
- emptyStateClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
2138
- emptyIconClass: _angular_core.Signal<"text-slate-600" | "text-slate-300">;
2691
+ emptyStateClass: _angular_core.Signal<"border-slate-700" | "border-slate-200">;
2692
+ emptyIconClass: _angular_core.Signal<"text-slate-300" | "text-slate-600">;
2139
2693
  emptyTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2140
- emptyDescClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2141
- shortcutsClass: _angular_core.Signal<"bg-slate-900/50 border-slate-700" | "bg-slate-50 border-slate-200">;
2694
+ emptyDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2695
+ shortcutsClass: _angular_core.Signal<"bg-slate-50 border-slate-200" | "bg-slate-900/50 border-slate-700">;
2142
2696
  kbdClass: _angular_core.Signal<"bg-white border border-slate-300 text-slate-700 shadow-sm" | "bg-slate-700 border border-slate-600 text-slate-300">;
2143
- shortcutTextClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2697
+ shortcutTextClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2144
2698
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchModalComponent, never>;
2145
2699
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchModalComponent, "symphiq-search-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "searchQuery": { "alias": "searchQuery"; "required": false; "isSignal": true; }; "results": { "alias": "results"; "required": false; "isSignal": true; }; "hasResults": { "alias": "hasResults"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; "resultSelected": "resultSelected"; "close": "close"; }, never, never, true, never>;
2146
2700
  }
2147
2701
 
2702
+ declare class GradeBadgeComponent {
2703
+ grade: _angular_core.InputSignal<string>;
2704
+ gradeRationale: _angular_core.InputSignal<string>;
2705
+ label: _angular_core.InputSignal<string>;
2706
+ viewMode: _angular_core.InputSignal<ViewModeEnum>;
2707
+ tooltipPosition: _angular_core.InputSignal<"top" | "left" | "right" | "bottom">;
2708
+ isLightMode: _angular_core.Signal<boolean>;
2709
+ formattedGrade: _angular_core.Signal<string>;
2710
+ shouldPulse: _angular_core.Signal<boolean>;
2711
+ tooltip: _angular_core.Signal<{
2712
+ title: string;
2713
+ grade: string;
2714
+ explanation: string;
2715
+ }>;
2716
+ private formatGrade;
2717
+ badgeLabelClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2718
+ gradeBadgeClass: _angular_core.Signal<string>;
2719
+ private getGradeBadgeClassLight;
2720
+ private getGradeBadgeClassDark;
2721
+ private getGradeExplanation;
2722
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GradeBadgeComponent, never>;
2723
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GradeBadgeComponent, "symphiq-grade-badge", never, { "grade": { "alias": "grade"; "required": false; "isSignal": true; }; "gradeRationale": { "alias": "gradeRationale"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2724
+ }
2725
+
2726
+ declare class ChartCardComponent {
2727
+ chart: _angular_core.InputSignal<AiChartInterface>;
2728
+ viewMode: _angular_core.InputSignal<ViewModeEnum>;
2729
+ isLightMode: _angular_core.InputSignal<boolean>;
2730
+ chartClick: _angular_core.OutputEmitterRef<AiChartInterface>;
2731
+ protected readonly ChartTypeEnum: typeof ChartTypeEnum;
2732
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartCardComponent, never>;
2733
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartCardComponent, "symphiq-chart-card", never, { "chart": { "alias": "chart"; "required": true; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, { "chartClick": "chartClick"; }, never, never, true, never>;
2734
+ }
2735
+
2736
+ declare class MetricListItemComponent {
2737
+ metric: _angular_core.InputSignal<PerformanceMetricInterface>;
2738
+ isLightMode: _angular_core.InputSignal<boolean>;
2739
+ animationKey: _angular_core.InputSignal<number>;
2740
+ currencySymbol: _angular_core.InputSignal<string>;
2741
+ metricClick: _angular_core.OutputEmitterRef<PerformanceMetricInterface>;
2742
+ private metricNameCache;
2743
+ private animatedValueSignal;
2744
+ private animatedTrendSignal;
2745
+ private animationFrame;
2746
+ private trendAnimationFrame;
2747
+ animatedValue: _angular_core.Signal<number>;
2748
+ animatedTrendValue: _angular_core.Signal<number>;
2749
+ constructor();
2750
+ formatMetricName(name: string): string;
2751
+ formatAnimatedMetricValue(metric: PerformanceMetricInterface, animatedValue: number): string;
2752
+ getMetricTrendClass(metric: PerformanceMetricInterface): string;
2753
+ private animateValue;
2754
+ private animateTrend;
2755
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetricListItemComponent, never>;
2756
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricListItemComponent, "symphiq-metric-list-item", never, { "metric": { "alias": "metric"; "required": true; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "animationKey": { "alias": "animationKey"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "metricClick": "metricClick"; }, never, never, true, never>;
2757
+ }
2758
+
2759
+ interface ConfidenceData {
2760
+ grade: string;
2761
+ percentage: number;
2762
+ qualitativeStatus: string;
2763
+ quantitativeStatus: string;
2764
+ description: string;
2765
+ }
2766
+ declare class ConfidenceLevelCardComponent implements OnInit, OnDestroy {
2767
+ viewMode: ViewModeEnum;
2768
+ currentStepId: string;
2769
+ private elementRef;
2770
+ private observer?;
2771
+ private animationFrame?;
2772
+ protected hasAnimated: _angular_core.WritableSignal<boolean>;
2773
+ protected animatedPercentage: _angular_core.WritableSignal<number>;
2774
+ ngOnInit(): void;
2775
+ ngOnDestroy(): void;
2776
+ private setupObserver;
2777
+ private animateProgress;
2778
+ protected confidenceData: _angular_core.Signal<ConfidenceData>;
2779
+ protected shouldPulse: _angular_core.Signal<boolean>;
2780
+ protected isLightMode: _angular_core.Signal<boolean>;
2781
+ protected cardContainerClasses: _angular_core.Signal<"border-2 shadow-2xl bg-slate-800/60 border-slate-700/50 backdrop-blur-xl" | "border-2 shadow-2xl bg-white/90 border-slate-200/50 backdrop-blur-xl shadow-slate-200/50">;
2782
+ protected backgroundOverlayClasses: _angular_core.Signal<"bg-gradient-to-br from-emerald-500/30 via-teal-500/20 to-emerald-500/30" | "bg-gradient-to-br from-emerald-400/20 via-teal-400/10 to-emerald-400/20" | "bg-gradient-to-br from-blue-500/30 via-cyan-500/20 to-blue-500/30" | "bg-gradient-to-br from-blue-400/20 via-cyan-400/10 to-blue-400/20" | "bg-gradient-to-br from-orange-500/30 via-amber-500/20 to-orange-500/30" | "bg-gradient-to-br from-orange-400/20 via-amber-400/10 to-orange-400/20" | "bg-gradient-to-br from-red-500/30 via-rose-500/20 to-red-500/30" | "bg-gradient-to-br from-red-400/20 via-rose-400/10 to-red-400/20">;
2783
+ protected titleClasses: _angular_core.Signal<"text-white" | "bg-gradient-to-r from-slate-700 to-slate-900 bg-clip-text text-transparent">;
2784
+ protected subtitleClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2785
+ protected gradeBadgeContainerClasses: _angular_core.Signal<string>;
2786
+ protected glowEffectClasses: _angular_core.Signal<"bg-emerald-500" | "bg-blue-500" | "bg-orange-500" | "bg-red-500">;
2787
+ protected gradeBadgeClasses: _angular_core.Signal<"bg-gradient-to-br from-emerald-500/30 to-teal-500/30 border-2 border-emerald-500/50 shadow-[0_0_20px_rgba(16,185,129,0.3)]" | "bg-gradient-to-br from-emerald-50 to-teal-50 border-2 border-emerald-300/50 shadow-[0_0_20px_rgba(16,185,129,0.2)]" | "bg-gradient-to-br from-blue-500/30 to-cyan-500/30 border-2 border-blue-500/50 shadow-[0_0_20px_rgba(59,130,246,0.3)]" | "bg-gradient-to-br from-blue-50 to-cyan-50 border-2 border-blue-300/50 shadow-[0_0_20px_rgba(59,130,246,0.2)]" | "bg-gradient-to-br from-orange-500/30 to-amber-500/30 border-2 border-orange-500/50 shadow-[0_0_20px_rgba(249,115,22,0.3)]" | "bg-gradient-to-br from-orange-50 to-amber-50 border-2 border-orange-300/50 shadow-[0_0_20px_rgba(249,115,22,0.2)]" | "bg-gradient-to-br from-red-500/30 to-rose-500/30 border-2 border-red-500/50 shadow-[0_0_20px_rgba(239,68,68,0.3)]" | "bg-gradient-to-br from-red-50 to-rose-50 border-2 border-red-300/50 shadow-[0_0_20px_rgba(239,68,68,0.2)]">;
2788
+ protected gradeLabelClasses: _angular_core.Signal<"text-blue-700" | "text-emerald-700" | "text-red-700" | "text-orange-700" | "text-emerald-300" | "text-blue-300" | "text-orange-300" | "text-red-300">;
2789
+ protected gradeValueClasses: _angular_core.Signal<"bg-gradient-to-b from-emerald-300 to-emerald-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-emerald-600 to-emerald-800 bg-clip-text text-transparent" | "bg-gradient-to-b from-blue-300 to-blue-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-blue-600 to-blue-800 bg-clip-text text-transparent" | "bg-gradient-to-b from-orange-300 to-orange-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-orange-600 to-orange-800 bg-clip-text text-transparent" | "bg-gradient-to-b from-red-300 to-red-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-red-600 to-red-800 bg-clip-text text-transparent">;
2790
+ protected descriptionClasses: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
2791
+ protected progressLabelClasses: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
2792
+ protected progressValueClasses: _angular_core.Signal<"text-emerald-400" | "text-emerald-600" | "text-blue-400" | "text-blue-600" | "text-red-400" | "text-orange-400" | "text-red-600" | "text-orange-600">;
2793
+ protected progressTrackClasses: _angular_core.Signal<"bg-slate-700/50 shadow-inner" | "bg-slate-200 shadow-inner">;
2794
+ protected progressBarClasses: _angular_core.Signal<"rounded-full overflow-hidden bg-gradient-to-r from-emerald-500 via-teal-500 to-emerald-600" | "rounded-full overflow-hidden bg-gradient-to-r from-blue-500 via-cyan-500 to-blue-600" | "rounded-full overflow-hidden bg-gradient-to-r from-orange-500 via-amber-500 to-orange-600" | "rounded-full overflow-hidden bg-gradient-to-r from-red-500 via-rose-500 to-red-600">;
2795
+ protected shimmerClasses: _angular_core.Signal<string>;
2796
+ protected progressGlowClasses: _angular_core.Signal<"bg-gradient-to-r from-emerald-500 to-teal-500" | "bg-gradient-to-r from-blue-500 to-cyan-500" | "bg-gradient-to-r from-orange-500 to-amber-500" | "bg-gradient-to-r from-red-500 to-rose-500">;
2797
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfidenceLevelCardComponent, never>;
2798
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfidenceLevelCardComponent, "symphiq-confidence-level-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "currentStepId": { "alias": "currentStepId"; "required": false; }; }, {}, never, never, true, never>;
2799
+ }
2800
+
2801
+ declare class RelatedContentSidebarComponent {
2802
+ relatedContent: _angular_core.InputSignal<CrossDashboardRelationships | null>;
2803
+ viewMode: _angular_core.InputSignal<ViewModeEnum>;
2804
+ funnelInsightsClicked: _angular_core.OutputEmitterRef<void>;
2805
+ funnelMetricsClicked: _angular_core.OutputEmitterRef<void>;
2806
+ businessInsightsClicked: _angular_core.OutputEmitterRef<void>;
2807
+ protected isLightMode: _angular_core.Signal<boolean>;
2808
+ protected hasFunnelContent: _angular_core.Signal<boolean>;
2809
+ protected hasBusinessContent: _angular_core.Signal<boolean>;
2810
+ protected hasRelatedContent: _angular_core.Signal<boolean>;
2811
+ protected funnelInsightsCount: _angular_core.Signal<number>;
2812
+ protected funnelMetricsCount: _angular_core.Signal<number>;
2813
+ protected businessInsightsCount: _angular_core.Signal<number>;
2814
+ protected headerClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2815
+ protected buttonClasses: _angular_core.Signal<"bg-slate-800/50 border-slate-700 hover:border-blue-500/50 hover:bg-slate-700/50" | "bg-slate-50 border-slate-200 hover:border-blue-500/50 hover:bg-slate-100">;
2816
+ protected iconBgClasses: _angular_core.Signal<"bg-blue-100 text-blue-600" | "bg-blue-900/30 text-blue-400">;
2817
+ protected iconClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2818
+ protected countClasses: _angular_core.Signal<"text-slate-900" | "text-white">;
2819
+ protected labelClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2820
+ protected chevronClasses: _angular_core.Signal<"text-slate-500 group-hover:text-blue-400" | "text-slate-400 group-hover:text-blue-600">;
2821
+ protected onFunnelInsightsClick(): void;
2822
+ protected onFunnelMetricsClick(): void;
2823
+ protected onBusinessInsightsClick(): void;
2824
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RelatedContentSidebarComponent, never>;
2825
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RelatedContentSidebarComponent, "symphiq-related-content-sidebar", never, { "relatedContent": { "alias": "relatedContent"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, { "funnelInsightsClicked": "funnelInsightsClicked"; "funnelMetricsClicked": "funnelMetricsClicked"; "businessInsightsClicked": "businessInsightsClicked"; }, never, never, true, never>;
2826
+ }
2827
+
2148
2828
  declare class ChartContainerComponent {
2149
2829
  chart: _angular_core.InputSignal<AiChartInterface>;
2150
2830
  isLightMode: _angular_core.InputSignal<boolean>;
@@ -2152,15 +2832,16 @@ declare class ChartContainerComponent {
2152
2832
  isCompactMode: _angular_core.InputSignal<boolean>;
2153
2833
  collapsibleIn: _angular_core.InputSignal<"compact" | "expanded" | "never">;
2154
2834
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2835
+ currencySymbol: _angular_core.InputSignal<string>;
2155
2836
  chartClick: _angular_core.OutputEmitterRef<AiChartInterface>;
2156
2837
  isExpanded: _angular_core.WritableSignal<boolean>;
2157
2838
  protected ChartTypeEnum: typeof ChartTypeEnum;
2158
2839
  containerClass: _angular_core.Signal<"bg-white border-slate-200 hover:border-blue-300 hover:shadow-blue-100/50" | "bg-slate-800 border-slate-700 hover:border-slate-600 hover:shadow-slate-900/50">;
2159
- headerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
2840
+ headerClass: _angular_core.Signal<"border-slate-700" | "border-slate-200">;
2160
2841
  titleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2161
- descriptionClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2162
- iconClass: _angular_core.Signal<"text-slate-400 group-hover:text-blue-500" | "text-slate-500 group-hover:text-blue-400">;
2163
- chartIconClass: _angular_core.Signal<"bg-blue-100 text-blue-600" | "bg-blue-500/20 text-blue-400">;
2842
+ descriptionClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2843
+ iconClass: _angular_core.Signal<"text-slate-500 group-hover:text-blue-400" | "text-slate-400 group-hover:text-blue-500">;
2844
+ chartIconClass: _angular_core.Signal<"bg-blue-500/20 text-blue-400" | "bg-blue-100 text-blue-600">;
2164
2845
  expandButtonClass: _angular_core.Signal<"bg-blue-100 text-blue-600 hover:bg-blue-200" | "bg-blue-500/20 text-blue-400 hover:bg-blue-500/30">;
2165
2846
  closeButtonClass: _angular_core.Signal<"bg-slate-100 text-slate-600 hover:bg-slate-200" | "bg-slate-700/50 text-slate-400 hover:bg-slate-600/50">;
2166
2847
  isCollapsible: _angular_core.Signal<boolean>;
@@ -2170,14 +2851,15 @@ declare class ChartContainerComponent {
2170
2851
  onChartClick(event: Event): void;
2171
2852
  toggleExpand(event: Event): void;
2172
2853
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartContainerComponent, never>;
2173
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartContainerComponent, "symphiq-chart-container", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "collapsibleIn": { "alias": "collapsibleIn"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, { "chartClick": "chartClick"; }, never, never, true, never>;
2854
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartContainerComponent, "symphiq-chart-container", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "collapsibleIn": { "alias": "collapsibleIn"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "chartClick": "chartClick"; }, never, never, true, never>;
2174
2855
  }
2175
2856
 
2176
2857
  declare class LineChartComponent implements OnInit, AfterViewInit, OnDestroy {
2177
2858
  chart: _angular_core.InputSignal<AiChartInterface>;
2178
2859
  showAxisLabels: _angular_core.InputSignal<boolean>;
2179
2860
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2180
- chartHeight: _angular_core.Signal<"500px" | "133px">;
2861
+ currencySymbol: _angular_core.InputSignal<string>;
2862
+ chartHeight: _angular_core.Signal<"133px" | "500px">;
2181
2863
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
2182
2864
  tooltipTextColor: _angular_core.Signal<0 | 16777215>;
2183
2865
  chartHash: _angular_core.Signal<string>;
@@ -2213,14 +2895,15 @@ declare class LineChartComponent implements OnInit, AfterViewInit, OnDestroy {
2213
2895
  private extractMetricName;
2214
2896
  private createChart;
2215
2897
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChartComponent, never>;
2216
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartComponent, "symphiq-line-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2898
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartComponent, "symphiq-line-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2217
2899
  }
2218
2900
 
2219
2901
  declare class BarChartComponent implements OnInit, AfterViewInit, OnDestroy {
2220
2902
  chart: _angular_core.InputSignal<AiChartInterface>;
2221
2903
  showAxisLabels: _angular_core.InputSignal<boolean>;
2222
2904
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2223
- chartHeight: _angular_core.Signal<"500px" | "175px">;
2905
+ currencySymbol: _angular_core.InputSignal<string>;
2906
+ chartHeight: _angular_core.Signal<"175px" | "500px">;
2224
2907
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
2225
2908
  tooltipTextColor: _angular_core.Signal<0 | 16777215>;
2226
2909
  chartHash: _angular_core.Signal<string>;
@@ -2249,14 +2932,15 @@ declare class BarChartComponent implements OnInit, AfterViewInit, OnDestroy {
2249
2932
  private cleanupIntersectionObserver;
2250
2933
  private createChart;
2251
2934
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartComponent, never>;
2252
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartComponent, "symphiq-bar-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2935
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartComponent, "symphiq-bar-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2253
2936
  }
2254
2937
 
2255
2938
  declare class PieChartComponent implements OnInit, AfterViewInit, OnDestroy {
2256
2939
  chart: _angular_core.InputSignal<AiChartInterface>;
2257
2940
  showAxisLabels: _angular_core.InputSignal<boolean>;
2258
2941
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2259
- chartHeight: _angular_core.Signal<"500px" | "200px">;
2942
+ currencySymbol: _angular_core.InputSignal<string>;
2943
+ chartHeight: _angular_core.Signal<"200px" | "500px">;
2260
2944
  chartHash: _angular_core.Signal<string>;
2261
2945
  chartDiv: ElementRef;
2262
2946
  private root?;
@@ -2284,14 +2968,15 @@ declare class PieChartComponent implements OnInit, AfterViewInit, OnDestroy {
2284
2968
  private formatValue;
2285
2969
  private createChart;
2286
2970
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieChartComponent, never>;
2287
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChartComponent, "symphiq-pie-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2971
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChartComponent, "symphiq-pie-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2288
2972
  }
2289
2973
 
2290
2974
  declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
2291
2975
  chart: _angular_core.InputSignal<AiChartInterface>;
2292
2976
  showAxisLabels: _angular_core.InputSignal<boolean>;
2293
2977
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2294
- chartHeight: _angular_core.Signal<"500px" | "133px">;
2978
+ currencySymbol: _angular_core.InputSignal<string>;
2979
+ chartHeight: _angular_core.Signal<"133px" | "500px">;
2295
2980
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
2296
2981
  chartHash: _angular_core.Signal<string>;
2297
2982
  chartDiv: ElementRef;
@@ -2319,7 +3004,7 @@ declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
2319
3004
  private cleanupIntersectionObserver;
2320
3005
  private createChart;
2321
3006
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AreaChartComponent, never>;
2322
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AreaChartComponent, "symphiq-area-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3007
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AreaChartComponent, "symphiq-area-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2323
3008
  }
2324
3009
 
2325
3010
  declare class TooltipContainerComponent {
@@ -2332,7 +3017,7 @@ declare class TooltipContainerComponent {
2332
3017
  isVisible: _angular_core.Signal<boolean>;
2333
3018
  tooltipType: _angular_core.Signal<string | null>;
2334
3019
  tooltipContent: _angular_core.Signal<string | Record<string, unknown> | undefined>;
2335
- tooltipPosition: _angular_core.Signal<"top" | "auto" | "bottom" | "left" | "right">;
3020
+ tooltipPosition: _angular_core.Signal<"auto" | "top" | "left" | "right" | "bottom">;
2336
3021
  targetRect: _angular_core.Signal<DOMRect | null>;
2337
3022
  mousePosition: _angular_core.Signal<{
2338
3023
  x: number;
@@ -2356,7 +3041,7 @@ declare class TooltipContainerComponent {
2356
3041
  shouldCenter: _angular_core.Signal<boolean>;
2357
3042
  containerClass: _angular_core.Signal<"" | "-translate-x-1/2">;
2358
3043
  contentClass: _angular_core.Signal<"bg-white/95 border-slate-300 text-slate-900" | "bg-slate-800/95 border-slate-600 text-white">;
2359
- textClass: _angular_core.Signal<"text-slate-200" | "text-slate-700">;
3044
+ textClass: _angular_core.Signal<"text-slate-700" | "text-slate-200">;
2360
3045
  viewMoreButtonClass: _angular_core.Signal<"bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-200 hover:border-blue-400 hover:text-blue-800 active:bg-blue-300" | "bg-blue-500/10 text-blue-400 border border-blue-500/20 hover:bg-blue-500/30 hover:border-blue-500/40 hover:text-blue-300 active:bg-blue-500/40">;
2361
3046
  transformStyle: _angular_core.Signal<"none" | "translateX(-192px)">;
2362
3047
  constructor();
@@ -2436,6 +3121,8 @@ declare class ViewportAnimationDirective implements OnInit, OnDestroy {
2436
3121
  once: boolean;
2437
3122
  private observer?;
2438
3123
  private hasAnimated;
3124
+ private isFirstObservation;
3125
+ private shouldSkipAnimation;
2439
3126
  constructor(el: ElementRef, renderer: Renderer2);
2440
3127
  ngOnInit(): void;
2441
3128
  ngOnDestroy(): void;
@@ -2455,16 +3142,19 @@ declare class FocusAreaDetailCardComponent {
2455
3142
  set forceExpanded(value: boolean);
2456
3143
  animationIndex: number;
2457
3144
  protected IconSourceEnum: typeof IconSourceEnum;
2458
- protected isExpanded: _angular_core.WritableSignal<boolean>;
3145
+ private _isExpanded;
3146
+ protected isCompetitiveGapExpanded: _angular_core.WritableSignal<boolean>;
2459
3147
  private _forceExpanded;
2460
3148
  private _hasAnimated;
2461
3149
  private modalService;
2462
3150
  private profileContextService;
3151
+ private viewModeService;
3152
+ protected isExpanded: _angular_core.Signal<boolean>;
2463
3153
  protected isDark: _angular_core.Signal<boolean>;
2464
3154
  protected isActuallyExpanded: _angular_core.Signal<boolean>;
2465
3155
  protected forceExpandedValue: _angular_core.Signal<boolean>;
2466
3156
  protected shouldAnimateExpand: _angular_core.Signal<boolean>;
2467
- protected iconSize: _angular_core.Signal<"w-6 h-6" | "w-7 h-7">;
3157
+ protected iconSize: _angular_core.Signal<"w-7 h-7" | "w-6 h-6">;
2468
3158
  protected relatedRecommendations: _angular_core.Signal<_jebgem_model.ProfileAnalysisRecommendationInterface[]>;
2469
3159
  protected statusLabel: _angular_core.Signal<string>;
2470
3160
  protected statusBadgeType: _angular_core.Signal<BadgeType>;
@@ -2485,8 +3175,11 @@ declare class FocusAreaDetailCardComponent {
2485
3175
  protected expandButtonClasses: _angular_core.Signal<"text-sm font-medium text-blue-400" | "text-sm font-medium text-blue-600">;
2486
3176
  protected chevronClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2487
3177
  protected toggleExpanded(): void;
2488
- protected openCompetitiveGapModal(): void;
3178
+ protected toggleCompetitiveGap(): void;
2489
3179
  onExpandItem(event: CustomEvent): void;
3180
+ protected getCompetitiveGapSectionClasses(): string;
3181
+ protected getToolChipClasses(): string;
3182
+ protected formatFocusAreaStatus(status: string): string;
2490
3183
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FocusAreaDetailCardComponent, never>;
2491
3184
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FocusAreaDetailCardComponent, "symphiq-focus-area-detail-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; }, {}, never, never, true, never>;
2492
3185
  }
@@ -2500,11 +3193,18 @@ interface CompetitorContext {
2500
3193
  focusAreas?: ProfileItemInterface[];
2501
3194
  }
2502
3195
 
3196
+ interface StrengthOrWeaknessObject {
3197
+ area?: string;
3198
+ assessment?: string;
3199
+ text?: string;
3200
+ }
3201
+ type StrengthOrWeakness = string | StrengthOrWeaknessObject;
2503
3202
  declare class CompetitorAnalysisCardComponent {
2504
3203
  item?: ProfileItemInterface;
2505
3204
  viewMode: ViewModeEnum;
2506
3205
  set forceExpanded(value: boolean);
2507
3206
  animationIndex: number;
3207
+ inModalContext: boolean;
2508
3208
  protected IconSourceEnum: typeof IconSourceEnum;
2509
3209
  protected isExpanded: _angular_core.WritableSignal<boolean>;
2510
3210
  private _forceExpanded;
@@ -2512,21 +3212,26 @@ declare class CompetitorAnalysisCardComponent {
2512
3212
  private modalService;
2513
3213
  private profileContextService;
2514
3214
  private navigationService;
3215
+ private lookupService;
3216
+ private viewModeService;
2515
3217
  protected isDark: _angular_core.Signal<boolean>;
3218
+ protected displayMode: _angular_core.Signal<ViewMode>;
2516
3219
  protected isActuallyExpanded: _angular_core.Signal<boolean>;
2517
- protected forceExpandedValue: _angular_core.Signal<boolean>;
3220
+ protected isExpandedMode: _angular_core.Signal<boolean>;
2518
3221
  protected shouldAnimateExpand: _angular_core.Signal<boolean>;
2519
- protected iconSize: _angular_core.Signal<"w-6 h-6" | "w-7 h-7">;
3222
+ protected iconSize: _angular_core.Signal<"w-7 h-7" | "w-6 h-6">;
3223
+ protected animationType: _angular_core.Signal<"none" | "slide-up">;
3224
+ constructor();
2520
3225
  protected hasCompanyInfo: _angular_core.Signal<boolean>;
2521
3226
  protected competitorContext: _angular_core.Signal<CompetitorContext | undefined>;
2522
3227
  protected hasAnyContext: _angular_core.Signal<boolean>;
2523
3228
  protected threatLevelLabel: _angular_core.Signal<string>;
2524
3229
  protected threatLevelBadgeType: _angular_core.Signal<BadgeType>;
2525
3230
  protected threatLevelIcon: _angular_core.Signal<IconObjectInterface$1>;
2526
- protected getStrengthArea(strength: any): string;
2527
- protected getStrengthText(strength: any): string;
2528
- protected getWeaknessArea(weakness: any): string;
2529
- protected getWeaknessText(weakness: any): string;
3231
+ protected getStrengthArea(strength: StrengthOrWeakness): string;
3232
+ protected getStrengthText(strength: StrengthOrWeakness): string;
3233
+ protected getWeaknessArea(weakness: StrengthOrWeakness): string;
3234
+ protected getWeaknessText(weakness: StrengthOrWeakness): string;
2530
3235
  protected websiteIcon: _angular_core.Signal<IconObjectInterface$1>;
2531
3236
  protected strategyIcon: _angular_core.Signal<IconObjectInterface$1>;
2532
3237
  protected strengthIcon: _angular_core.Signal<IconObjectInterface$1>;
@@ -2554,13 +3259,14 @@ declare class CompetitorAnalysisCardComponent {
2554
3259
  protected navigateToItem(item: ProfileItemInterface): void;
2555
3260
  onExpandItem(event: CustomEvent): void;
2556
3261
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CompetitorAnalysisCardComponent, never>;
2557
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitorAnalysisCardComponent, "symphiq-competitor-analysis-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; }, {}, never, never, true, never>;
3262
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitorAnalysisCardComponent, "symphiq-competitor-analysis-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; "inModalContext": { "alias": "inModalContext"; "required": false; }; }, {}, never, never, true, never>;
2558
3263
  }
2559
3264
 
2560
3265
  declare class OpportunityHighlightBannerComponent {
2561
3266
  title: string;
2562
3267
  message?: string;
2563
3268
  isDark: boolean;
3269
+ isExpanded: boolean;
2564
3270
  bannerClick: EventEmitter<void>;
2565
3271
  protected iconSource: IconSourceEnum;
2566
3272
  protected bannerClasses: _angular_core.Signal<"bg-gradient-to-r from-amber-500/10 to-orange-500/10 border-l-amber-500 border-r border-t border-b border-amber-500/30" | "bg-gradient-to-r from-amber-50 to-orange-50 border-l-amber-500 border-r border-t border-b border-amber-200">;
@@ -2568,10 +3274,10 @@ declare class OpportunityHighlightBannerComponent {
2568
3274
  protected titleClasses: _angular_core.Signal<"text-amber-300" | "text-amber-900">;
2569
3275
  protected badgeClasses: _angular_core.Signal<"bg-amber-500/30 text-amber-300" | "bg-amber-200 text-amber-800">;
2570
3276
  protected messageClasses: _angular_core.Signal<"text-amber-700" | "text-amber-400/90">;
2571
- protected chevronClasses: _angular_core.Signal<"text-amber-600" | "text-amber-400">;
3277
+ protected chevronClasses: _angular_core.Signal<"text-amber-400" | "text-amber-600">;
2572
3278
  handleClick(event: Event): void;
2573
3279
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OpportunityHighlightBannerComponent, never>;
2574
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OpportunityHighlightBannerComponent, "symphiq-opportunity-highlight-banner", never, { "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "isDark": { "alias": "isDark"; "required": false; }; }, { "bannerClick": "bannerClick"; }, never, never, true, never>;
3280
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OpportunityHighlightBannerComponent, "symphiq-opportunity-highlight-banner", never, { "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "isDark": { "alias": "isDark"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; }, { "bannerClick": "bannerClick"; }, never, never, true, never>;
2575
3281
  }
2576
3282
 
2577
3283
  declare class SkeletonCardBaseComponent {
@@ -2655,8 +3361,8 @@ declare class SkeletonCompetitorCardComponent {
2655
3361
  declare const FUNNEL_ANALYSIS: FunnelAnalysisInterface;
2656
3362
 
2657
3363
  declare const BUSINESS_PROFILE: ProfileInterface;
2658
- declare const RCC_BUSINESS_PROFILE: ProfileInterface;
2659
- declare const HAMMETON_BUSINESS_PROFILE: ProfileInterface;
3364
+
3365
+ declare const PROFILE_ANALYSIS_SHOP: ProfileAnalysisInterface;
2660
3366
 
2661
3367
  /**
2662
3368
  * Shared Theme Color Utilities
@@ -2784,6 +3490,6 @@ declare function getCategoryColor(category: string): CategoryColorPalette;
2784
3490
  */
2785
3491
  declare function getCategoryBadgeClasses(category: string, isDark: boolean): string;
2786
3492
 
2787
- export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FunnelOrderService, HAMMETON_BUSINESS_PROFILE, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, LineChartComponent, MetricCardComponent, MetricFormatterService, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RCC_BUSINESS_PROFILE, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
2788
- export type { AnimationType, BusinessSearchResult, CategoryColorPalette, ChartThemeColors, FunnelMetricOrder, HeaderScrollConfig, LayoutMode, Metric, ModalState, NavSection, NavigationState, ScrollBaseCustomEvent, ScrollBaseDetail, ScrollCustomEvent, ScrollDepthInfo, ScrollDetail, SemanticColors, ShadowLevel, ThemeColorContext, ThemeMode, TooltipPosition, TooltipState, TooltipType, ViewMode, ViewportBounds, VisualizationData, VisualizationType };
3493
+ export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfidenceLevelCardComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, LineChartComponent, MetricCardComponent, MetricFormatterService, MetricListItemComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
3494
+ export type { AnimationType, BusinessInsightDetailModalData, BusinessSearchResult, CategoryColorPalette, CategoryDetailModalData, ChartThemeColors, CriticalGapDetailModalData, CriticalGapsListModalData, CrossDashboardRelationships, FunnelMetricOrder, FunnelStrengthDetailModalData, FunnelStrengthInterface, FunnelStrengthsListModalData, FunnelWeaknessDetailModalData, FunnelWeaknessInterface, FunnelWeaknessesListModalData, GapDetailModalData, GoalBusinessInsightsListModalData, GoalDetailModalData, GoalInsightsListModalData, GoalObjectivesModalData, HeaderScrollConfig, ItemDetailModalData, KeyStrengthDetailModalData, KeyStrengthsListModalData, LayoutMode, Metric, MetricsListModalData, ModalState, NavSection, NavigationState, ObjectiveStrategiesModalData, OpportunityDetailModalData, RelatedBusinessContent, RelatedFunnelContent, ScrollBaseCustomEvent, ScrollBaseDetail, ScrollCustomEvent, ScrollDepthInfo, ScrollDetail, SemanticColors, ShadowLevel, StrategyRecommendationsModalData, StrengthDetailModalData, ThemeColorContext, ThemeMode, TooltipPosition, TooltipState, TooltipType, ViewMode, ViewportBounds, VisualizationData, VisualizationType };
2789
3495
  //# sourceMappingURL=index.d.ts.map