@eric-emg/symphiq-components 1.2.95 → 1.2.97

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,11 +1,13 @@
1
1
  import * as _jebgem_model from '@jebgem/model';
2
- import { InsightBlockInterface, PerformanceMetricInterface, AiChartInterface, ViewModeEnum, BreakdownMetricInterface, UserInterface, FunnelAnalysisInterface, OverallAssessmentInterface } 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';
3
3
  export * from '@jebgem/model';
4
4
  import * as _angular_core from '@angular/core';
5
- import { AfterViewInit, ElementRef, WritableSignal, OnInit, OnDestroy } from '@angular/core';
5
+ import { AfterViewInit, ElementRef, WritableSignal, OnInit, OnDestroy, OnChanges, SimpleChanges, Renderer2, EventEmitter } from '@angular/core';
6
6
  import * as rxjs from 'rxjs';
7
- import * as _jebgem_model_lib_funnel_analysis_ai_chart_interface from '@jebgem/model/lib/funnel-analysis/ai-chart.interface';
8
- import { SafeHtml } from '@angular/platform-browser';
7
+ import { Observable } from 'rxjs';
8
+ import { HttpClient } from '@angular/common/http';
9
+ import * as _angular_platform_browser from '@angular/platform-browser';
10
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
9
11
 
10
12
  interface FunnelMetricOrder {
11
13
  metric: string;
@@ -32,8 +34,13 @@ declare class FunnelOrderService {
32
34
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FunnelOrderService>;
33
35
  }
34
36
 
37
+ interface VisualizationData {
38
+ type: 'horizontal-bar' | 'circular-progress' | 'napkin-visual' | 'custom';
39
+ title: string;
40
+ data: unknown;
41
+ }
35
42
  interface ModalState {
36
- type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'metrics-list' | 'recommendations-list' | 'competitive-analysis' | null;
43
+ type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'metrics-list' | 'charts-list' | 'recommendations-list' | 'competitive-analysis' | 'competitive-gap' | 'visualization' | 'recommendation-action-steps' | null;
37
44
  data: InsightBlockInterface | InsightBlockInterface[] | PerformanceMetricInterface | PerformanceMetricInterface[] | AiChartInterface | {
38
45
  metrics: PerformanceMetricInterface[];
39
46
  insightContext?: {
@@ -42,6 +49,14 @@ interface ModalState {
42
49
  businessContext: string;
43
50
  priority: number;
44
51
  };
52
+ } | {
53
+ charts: AiChartInterface[];
54
+ insightContext?: {
55
+ title: string;
56
+ description: string;
57
+ businessContext: string;
58
+ priority: number;
59
+ };
45
60
  } | {
46
61
  recommendations: string[];
47
62
  insightContext: {
@@ -58,7 +73,14 @@ interface ModalState {
58
73
  competitiveAnalysis: string;
59
74
  priority: number;
60
75
  };
61
- } | null;
76
+ } | {
77
+ item: ProfileItemInterface;
78
+ viewMode: ViewModeEnum;
79
+ } | {
80
+ title?: string;
81
+ actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
82
+ viewMode: ViewModeEnum;
83
+ } | VisualizationData | null;
62
84
  charts: AiChartInterface[];
63
85
  previousState?: ModalState | null;
64
86
  expandedSection?: string;
@@ -76,6 +98,12 @@ declare class ModalService {
76
98
  businessContext: string;
77
99
  priority: number;
78
100
  }): void;
101
+ openChartsListModal(charts: AiChartInterface[], insightContext?: {
102
+ title: string;
103
+ description: string;
104
+ businessContext: string;
105
+ priority: number;
106
+ }): void;
79
107
  openRecommendationsListModal(recommendations: string[], insightContext: {
80
108
  title: string;
81
109
  description: string;
@@ -89,6 +117,9 @@ declare class ModalService {
89
117
  competitiveAnalysis: string;
90
118
  priority: number;
91
119
  }): void;
120
+ openVisualizationModal(visualization: VisualizationData, previousState?: ModalState): void;
121
+ openCompetitiveGapModal(item: ProfileItemInterface, viewMode: ViewModeEnum, previousState?: ModalState): void;
122
+ openRecommendationActionStepsModal(title: string | undefined, actionSteps: ProfileAnalysisRecommendationActionStepInterface[], viewMode: ViewModeEnum, previousState?: ModalState): void;
92
123
  goBack(previousState: ModalState): void;
93
124
  closeModal(): void;
94
125
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>;
@@ -153,7 +184,7 @@ interface MetricValueTooltipContent {
153
184
  };
154
185
  }
155
186
  interface StatusBadgeTooltipContent {
156
- status: string;
187
+ status: MetricStatusEnum;
157
188
  pacingPercentage?: number;
158
189
  currentValue?: number;
159
190
  projectedValue?: number;
@@ -171,7 +202,7 @@ interface TrendIndicatorTooltipContent {
171
202
  currentValue: number;
172
203
  priorValue: number;
173
204
  trendPercent: number;
174
- trendDirection: 'UP' | 'DOWN' | 'FLAT';
205
+ trendDirection: TrendDirectionEnum;
175
206
  isInverseMetric?: boolean;
176
207
  unit?: string;
177
208
  status?: string;
@@ -204,7 +235,7 @@ interface BreakdownRowTooltipContent {
204
235
  interface CompetitiveBenchmarkTooltipContent {
205
236
  industry: string;
206
237
  metricBenchmark: string;
207
- competitiveScore: 'LEADING' | 'COMPETITIVE' | 'LAGGING';
238
+ competitiveScore: CompetitiveScoreEnum;
208
239
  description: string;
209
240
  keyOpportunities: string;
210
241
  metricName?: string;
@@ -224,7 +255,7 @@ interface NarrativeTooltipContent {
224
255
  narrative: string;
225
256
  }
226
257
  interface CompetitiveStatusTooltipContent {
227
- status: 'LEADING' | 'COMPETITIVE' | 'LAGGING';
258
+ status: CompetitiveScoreEnum;
228
259
  statusDescription: string;
229
260
  metrics: Array<{
230
261
  name: string;
@@ -234,7 +265,7 @@ interface CompetitiveStatusTooltipContent {
234
265
  max: number;
235
266
  };
236
267
  unit: string;
237
- status?: 'LEADING' | 'COMPETITIVE' | 'LAGGING';
268
+ status?: CompetitiveScoreEnum;
238
269
  }>;
239
270
  }
240
271
  interface FunnelStageCompetitiveTooltipContent {
@@ -272,9 +303,9 @@ interface FunnelStageCompetitiveTooltipContent {
272
303
  declare class TooltipDataService {
273
304
  private formatCache;
274
305
  private metricLookupCache;
275
- extractMetricTooltipData(metric: PerformanceMetricInterface, chart?: any): MetricValueTooltipContent;
306
+ extractMetricTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): MetricValueTooltipContent;
276
307
  extractStatusTooltipData(metric: PerformanceMetricInterface): StatusBadgeTooltipContent;
277
- extractTrendTooltipData(metric: PerformanceMetricInterface, chart?: any): TrendIndicatorTooltipContent;
308
+ extractTrendTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): TrendIndicatorTooltipContent;
278
309
  extractPriorityTooltipData(insight: InsightBlockInterface): PriorityBadgeTooltipContent;
279
310
  extractBreakdownRowTooltipData(metric: PerformanceMetricInterface): BreakdownRowTooltipContent;
280
311
  findMetricByName(name: string, metrics: PerformanceMetricInterface[]): PerformanceMetricInterface | undefined;
@@ -456,27 +487,154 @@ declare class MetricFormatterService {
456
487
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<MetricFormatterService>;
457
488
  }
458
489
 
490
+ interface HeaderScrollConfig {
491
+ collapseThreshold?: number;
492
+ expandThreshold?: number;
493
+ stateChangeCooldown?: number;
494
+ debounceDelay?: number;
495
+ }
496
+ declare class HeaderScrollService {
497
+ private readonly DEFAULT_COLLAPSE_THRESHOLD;
498
+ private readonly DEFAULT_EXPAND_THRESHOLD;
499
+ private readonly DEFAULT_STATE_CHANGE_COOLDOWN;
500
+ private readonly DEFAULT_DEBOUNCE_DELAY;
501
+ isScrolled: _angular_core.WritableSignal<boolean>;
502
+ scrollProgress: _angular_core.WritableSignal<number>;
503
+ private scrollTimeout;
504
+ private lastStateChangeTime;
505
+ private isProgrammaticScroll;
506
+ private config;
507
+ configure(config: HeaderScrollConfig): void;
508
+ handleScroll(embedded?: boolean): void;
509
+ resetHeaderState(): void;
510
+ resetState(): void;
511
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderScrollService, never>;
512
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<HeaderScrollService>;
513
+ }
514
+
515
+ declare class IconService {
516
+ private http;
517
+ private sanitizer;
518
+ private cache;
519
+ constructor(http: HttpClient, sanitizer: DomSanitizer);
520
+ getIcon(name: string | undefined, size?: string): Observable<SafeHtml>;
521
+ private processSvg;
522
+ private getDefaultIcon;
523
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconService, never>;
524
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<IconService>;
525
+ }
526
+
527
+ type ShadowLevel = 'none' | 'sm' | 'md' | 'lg' | 'xl';
528
+ interface ScrollDepthInfo {
529
+ scrollTop: number;
530
+ scrollHeight: number;
531
+ clientHeight: number;
532
+ scrollPercentage: number;
533
+ shadowLevel: ShadowLevel;
534
+ }
535
+ declare class ScrollDepthService {
536
+ private scrollDepthSubjects;
537
+ trackScrollDepth(element: HTMLElement | Window, id: string): Observable<ScrollDepthInfo>;
538
+ private calculateScrollInfo;
539
+ private calculateShadowLevel;
540
+ cleanup(id: string): void;
541
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollDepthService, never>;
542
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ScrollDepthService>;
543
+ }
544
+
545
+ interface NavigationState {
546
+ sourceElementId: string | null;
547
+ sourceScrollPosition: number;
548
+ sourceViewportCoords: {
549
+ x: number;
550
+ y: number;
551
+ } | null;
552
+ targetElementId: string | null;
553
+ isBackButtonVisible: boolean;
554
+ targetScrollPosition: number;
555
+ }
556
+ declare class NavigationStateService {
557
+ private navigationState;
558
+ getNavigationState(): _angular_core.Signal<NavigationState>;
559
+ setNavigationState(sourceElementId: string, sourceScrollPosition: number, sourceViewportCoords: {
560
+ x: number;
561
+ y: number;
562
+ }, targetElementId: string): void;
563
+ showBackButton(): void;
564
+ hideBackButton(): void;
565
+ clearNavigationState(): void;
566
+ hasNavigationState(): boolean;
567
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationStateService, never>;
568
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NavigationStateService>;
569
+ }
570
+
571
+ interface BusinessSearchResult {
572
+ id: string;
573
+ type: 'section' | 'subsection' | 'item';
574
+ itemType?: string;
575
+ title: string;
576
+ description: string;
577
+ score: number;
578
+ sectionId?: string;
579
+ sectionTitle?: string;
580
+ subsectionId?: string;
581
+ subsectionTitle?: string;
582
+ data: ProfileSectionInterface | ProfileSubsectionInterface | ProfileItemInterface;
583
+ matchedFields: string[];
584
+ }
585
+ declare class BusinessProfileSearchService {
586
+ private searchQuery;
587
+ private allSections;
588
+ private allSubsections;
589
+ private allItems;
590
+ isSearchOpen: _angular_core.WritableSignal<boolean>;
591
+ highlightedResultId: _angular_core.WritableSignal<string | null>;
592
+ activeSearchResult: _angular_core.WritableSignal<BusinessSearchResult | null>;
593
+ searchResults: _angular_core.Signal<BusinessSearchResult[]>;
594
+ hasResults: _angular_core.Signal<boolean>;
595
+ setSearchQuery(query: string): void;
596
+ getSearchQuery(): string;
597
+ setProfile(profile: ProfileInterface): void;
598
+ openSearch(): void;
599
+ closeSearch(): void;
600
+ highlightResult(id: string): void;
601
+ clearHighlight(): void;
602
+ setActiveResult(result: BusinessSearchResult | null): void;
603
+ clearActiveResult(): void;
604
+ private buildSectionDescription;
605
+ private buildSubsectionDescription;
606
+ private buildItemDescription;
607
+ private scoreItem;
608
+ private fuzzyMatch;
609
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BusinessProfileSearchService, never>;
610
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BusinessProfileSearchService>;
611
+ }
612
+
459
613
  declare class ModalComponent {
460
614
  isLightMode: _angular_core.InputSignal<boolean>;
461
615
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
462
616
  private metricNameCache;
463
617
  private allMetricsSignal;
464
618
  private modalStateSignal;
619
+ Math: Math;
620
+ private animatedMetricValues;
621
+ private animatedTrendValues;
622
+ private animationFrames;
465
623
  isOpen: _angular_core.Signal<boolean>;
466
- modalType: _angular_core.Signal<"metric" | "insight" | "chart" | "insights-list" | "metrics-list" | "recommendations-list" | "competitive-analysis" | null>;
624
+ modalType: _angular_core.Signal<"insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null>;
467
625
  charts: _angular_core.Signal<AiChartInterface[]>;
468
626
  modalKey: _angular_core.Signal<number>;
469
627
  insightData: _angular_core.Signal<InsightBlockInterface | null>;
470
628
  metricData: _angular_core.Signal<PerformanceMetricInterface | null>;
471
629
  chartData: _angular_core.Signal<AiChartInterface | null>;
472
630
  chartDescription: _angular_core.Signal<string>;
473
- chartType: _angular_core.Signal<_jebgem_model_lib_funnel_analysis_ai_chart_interface.ChartTypeEnum | null>;
631
+ chartType: _angular_core.Signal<_jebgem_model.ChartTypeEnum | null>;
474
632
  chartLineData: _angular_core.Signal<AiChartInterface | null>;
475
633
  chartBarData: _angular_core.Signal<AiChartInterface | null>;
476
634
  chartPieData: _angular_core.Signal<AiChartInterface | null>;
477
635
  chartAreaData: _angular_core.Signal<AiChartInterface | null>;
478
636
  insightsListData: _angular_core.Signal<InsightBlockInterface[] | null>;
479
- metricsListData: _angular_core.Signal<PerformanceMetricInterface | AiChartInterface | InsightBlockInterface | (PerformanceMetricInterface | InsightBlockInterface)[] | null>;
637
+ metricsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
480
638
  metricsListMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
481
639
  metricsListInsightContext: _angular_core.Signal<{
482
640
  title: string;
@@ -484,7 +642,15 @@ declare class ModalComponent {
484
642
  businessContext: string;
485
643
  priority: number;
486
644
  } | null>;
487
- recommendationsListData: _angular_core.Signal<PerformanceMetricInterface | AiChartInterface | InsightBlockInterface | (PerformanceMetricInterface | InsightBlockInterface)[] | null>;
645
+ chartsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
646
+ chartsListCharts: _angular_core.Signal<AiChartInterface[]>;
647
+ chartsListInsightContext: _angular_core.Signal<{
648
+ title: string;
649
+ description: string;
650
+ businessContext: string;
651
+ priority: number;
652
+ } | null>;
653
+ recommendationsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
488
654
  recommendationsListRecommendations: _angular_core.Signal<string[]>;
489
655
  recommendationsListInsightContext: _angular_core.Signal<{
490
656
  title: string;
@@ -492,7 +658,7 @@ declare class ModalComponent {
492
658
  businessContext: string;
493
659
  priority: number;
494
660
  } | null>;
495
- competitiveAnalysisData: _angular_core.Signal<PerformanceMetricInterface | AiChartInterface | InsightBlockInterface | (PerformanceMetricInterface | InsightBlockInterface)[] | null>;
661
+ competitiveAnalysisData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
496
662
  competitiveAnalysisContext: _angular_core.Signal<{
497
663
  title: string;
498
664
  description: string;
@@ -507,12 +673,12 @@ declare class ModalComponent {
507
673
  allCharts: _angular_core.Signal<AiChartInterface[]>;
508
674
  hasPreviousState: _angular_core.Signal<boolean>;
509
675
  currentModalState: _angular_core.Signal<{
510
- type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "recommendations-list" | "competitive-analysis" | null;
676
+ type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null;
511
677
  data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null;
512
678
  charts: AiChartInterface[];
513
679
  openedAt: number;
514
680
  previousState: {
515
- type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "recommendations-list" | "competitive-analysis";
681
+ type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis";
516
682
  data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[];
517
683
  charts: AiChartInterface[];
518
684
  previousState: null;
@@ -522,16 +688,23 @@ declare class ModalComponent {
522
688
  expandedSection: _angular_core.Signal<string | undefined>;
523
689
  modalTitle: _angular_core.Signal<string>;
524
690
  private modalService;
525
- private tooltipDataService;
526
- getMetricTooltip(metric: PerformanceMetricInterface): MetricValueTooltipContent;
527
691
  constructor();
528
692
  getInsightContextPriorityBadgeClass(priority: number): string;
529
693
  private computeModalTitle;
530
694
  closeModal(): void;
531
695
  openInsightModal(insight: InsightBlockInterface): void;
532
696
  openMetricModalFromList(metric: PerformanceMetricInterface): void;
697
+ openChartModalFromList(chart: AiChartInterface): void;
533
698
  goBack(): void;
534
699
  formatMetricName(name: string): string;
700
+ formatMetricValue(metric: PerformanceMetricInterface): string;
701
+ getMetricTrendClass(metric: PerformanceMetricInterface): string;
702
+ animateMetricsList(metrics: PerformanceMetricInterface[]): void;
703
+ animateMetricValue(index: number, targetValue: number): void;
704
+ animateMetricTrend(index: number, targetTrend: number): void;
705
+ getAnimatedMetricValue(index: number): number;
706
+ getAnimatedTrendValue(index: number): number;
707
+ formatAnimatedMetricValue(metric: PerformanceMetricInterface, animatedValue: number): string;
535
708
  setMetricsAndInsights(metrics: PerformanceMetricInterface[], insights: InsightBlockInterface[], allCharts?: AiChartInterface[]): void;
536
709
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
537
710
  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>;
@@ -590,21 +763,6 @@ declare class SearchService {
590
763
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SearchService>;
591
764
  }
592
765
 
593
- interface GestureDetail {
594
- type: string;
595
- startX: number;
596
- startY: number;
597
- startTime: number;
598
- currentX: number;
599
- currentY: number;
600
- velocityX: number;
601
- velocityY: number;
602
- deltaX: number;
603
- deltaY: number;
604
- currentTime: number;
605
- event: UIEvent;
606
- data?: any;
607
- }
608
766
  interface ScrollBaseDetail {
609
767
  isScrolling: boolean;
610
768
  }
@@ -626,6 +784,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
626
784
  private tooltipService;
627
785
  modalComponent?: ModalComponent;
628
786
  dashboardContainer?: ElementRef<HTMLElement>;
787
+ protected readonly ViewModeEnum: typeof ViewModeEnum;
629
788
  requestedByUser: _angular_core.InputSignal<UserInterface | undefined>;
630
789
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
631
790
  funnelAnalysis: _angular_core.InputSignal<FunnelAnalysisInterface | undefined>;
@@ -728,6 +887,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
728
887
  showPerformanceMetrics: _angular_core.Signal<boolean>;
729
888
  showPerformanceBreakdowns: _angular_core.Signal<boolean>;
730
889
  showCompetitiveIntelligence: _angular_core.Signal<boolean>;
890
+ tocSections: _angular_core.Signal<ProfileSectionInterface[]>;
731
891
  private dateFormatCache;
732
892
  constructor(funnelOrderService: FunnelOrderService, viewModeService: ViewModeService, searchService: SearchService, tooltipService: TooltipService);
733
893
  ngAfterViewInit(): void;
@@ -841,7 +1001,7 @@ declare class MetricCardComponent {
841
1001
  competitiveScoreBadgeLightClass: _angular_core.Signal<string>;
842
1002
  competitiveScoreBadgeDarkClass: _angular_core.Signal<string>;
843
1003
  competitiveScoreBadgeClass: _angular_core.Signal<string>;
844
- competitiveScoreTextClass: _angular_core.Signal<"text-emerald-600" | "text-blue-700" | "text-blue-400" | "" | "text-orange-600">;
1004
+ competitiveScoreTextClass: _angular_core.Signal<"" | "text-emerald-600" | "text-blue-700" | "text-blue-400" | "text-orange-600">;
845
1005
  competitiveComparisonDefaultClass: _angular_core.Signal<"text-slate-700" | "text-slate-300">;
846
1006
  competitiveComparisonClass: _angular_core.Signal<"text-slate-700" | "text-slate-300" | "text-emerald-600 font-semibold" | "text-orange-600 font-semibold">;
847
1007
  getCompetitiveScoreIcon(): string;
@@ -886,6 +1046,9 @@ declare class InsightCardComponent {
886
1046
  descriptionClass: _angular_core.Signal<string>;
887
1047
  metricButtonClass: _angular_core.Signal<string>;
888
1048
  recommendationItemClass: _angular_core.Signal<string>;
1049
+ recommendationsContainerLightClass: _angular_core.Signal<string>;
1050
+ recommendationsContainerDarkClass: _angular_core.Signal<string>;
1051
+ recommendationsContainerClass: _angular_core.Signal<string>;
889
1052
  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">;
890
1053
  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">;
891
1054
  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">;
@@ -904,7 +1067,7 @@ declare class InsightCardComponent {
904
1067
  formatMetricName(name: string): string;
905
1068
  openMetricModal(metricName: string): void;
906
1069
  openMetricsModal(): void;
907
- openRecommendationsModal(): void;
1070
+ openChartsModal(): void;
908
1071
  openCompetitiveAnalysisModal(): void;
909
1072
  openChartModal(chart: AiChartInterface): void;
910
1073
  handleHeaderClick(event: Event): void;
@@ -1069,10 +1232,10 @@ declare class OverallAssessmentComponent {
1069
1232
  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">;
1070
1233
  lightModeTrendIconClass: _angular_core.Signal<"text-emerald-600" | "text-red-600">;
1071
1234
  darkModeTrendIconClass: _angular_core.Signal<"text-emerald-400" | "text-red-400">;
1072
- trendIconClass: _angular_core.Signal<"text-emerald-600" | "text-emerald-400" | "text-red-600" | "text-red-400">;
1235
+ trendIconClass: _angular_core.Signal<"text-emerald-400" | "text-red-400" | "text-emerald-600" | "text-red-600">;
1073
1236
  lightModeTrendValueClass: _angular_core.Signal<"text-emerald-600" | "text-red-600">;
1074
1237
  darkModeTrendValueClass: _angular_core.Signal<"text-emerald-400" | "text-red-400">;
1075
- trendValueClass: _angular_core.Signal<"text-emerald-600" | "text-emerald-400" | "text-red-600" | "text-red-400">;
1238
+ trendValueClass: _angular_core.Signal<"text-emerald-400" | "text-red-400" | "text-emerald-600" | "text-red-600">;
1076
1239
  formattedRevenueTrend: _angular_core.Signal<string>;
1077
1240
  formattedRevenueTarget: _angular_core.Signal<string>;
1078
1241
  hasRevenuePacing: _angular_core.Signal<boolean>;
@@ -1342,11 +1505,9 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1342
1505
  insightsCount: _angular_core.Signal<any>;
1343
1506
  revenueMetric: _angular_core.Signal<PerformanceMetricInterface | undefined>;
1344
1507
  topMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
1345
- statusLabel: _angular_core.Signal<any>;
1346
- statusIcon: _angular_core.Signal<"↑" | "→" | "⚠" | "•">;
1347
1508
  formattedRevenueValue: _angular_core.Signal<string>;
1348
1509
  formattedRevenueTrend: _angular_core.Signal<string>;
1349
- revenueStatusIcon: _angular_core.Signal<"↑" | "" | "" | "">;
1510
+ revenueStatusIcon: _angular_core.Signal<"↑" | "" | "" | "">;
1350
1511
  hasCompetitiveData: _angular_core.Signal<boolean>;
1351
1512
  hasOverallCompetitiveBenchmark: _angular_core.Signal<boolean>;
1352
1513
  overallCompetitiveDescription: _angular_core.Signal<any>;
@@ -1387,7 +1548,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1387
1548
  competitiveTooltip: _angular_core.Signal<{
1388
1549
  industry: any;
1389
1550
  metricBenchmark: string;
1390
- competitiveScore: "LAGGING" | "LEADING" | "COMPETITIVE";
1551
+ competitiveScore: "LEADING" | "LAGGING" | "COMPETITIVE";
1391
1552
  description: string;
1392
1553
  keyOpportunities: string;
1393
1554
  }>;
@@ -1440,7 +1601,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1440
1601
  getMetricLabel(metric: PerformanceMetricInterface): string;
1441
1602
  formatMetricValue(metric: PerformanceMetricInterface): string;
1442
1603
  formatTrend(metric: PerformanceMetricInterface): string;
1443
- getMetricTooltip(metric: PerformanceMetricInterface): any;
1604
+ getMetricTooltip(metric: PerformanceMetricInterface): MetricValueTooltipContent;
1444
1605
  private formatCurrency;
1445
1606
  private formatPercent;
1446
1607
  private getGradeExplanation;
@@ -1451,6 +1612,493 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1451
1612
  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>;
1452
1613
  }
1453
1614
 
1615
+ declare class ProfileItemLookupService {
1616
+ private profileData;
1617
+ setProfile(profile: ProfileInterface | undefined): void;
1618
+ findItemById(id: string): ProfileItemInterface | undefined;
1619
+ findItemsByIds(ids: string[]): ProfileItemInterface[];
1620
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemLookupService, never>;
1621
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileItemLookupService>;
1622
+ }
1623
+
1624
+ declare class ProfileContextService {
1625
+ private contextIndex;
1626
+ indexProfile(sections: any[], recommendations?: ProfileAnalysisRecommendationInterface[]): void;
1627
+ getRegions(): ProfileItemInterface[];
1628
+ getSeasons(): ProfileItemInterface[];
1629
+ getPriceTiers(): ProfileItemInterface[];
1630
+ getCustomerSegments(): ProfileItemInterface[];
1631
+ getProductCategories(): ProfileItemInterface[];
1632
+ getFocusAreas(): ProfileItemInterface[];
1633
+ getItemById(id: string): ProfileItemInterface | undefined;
1634
+ getItemsByIds(ids: string[]): ProfileItemInterface[];
1635
+ getCompetitors(): ProfileItemInterface[];
1636
+ getRecommendationById(id: string): ProfileAnalysisRecommendationInterface | undefined;
1637
+ getCompetitorsByIds(ids: string[]): ProfileItemInterface[];
1638
+ getRecommendationsByProfileItemIds(itemIds: string[]): ProfileAnalysisRecommendationInterface[];
1639
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileContextService, never>;
1640
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileContextService>;
1641
+ }
1642
+
1643
+ declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, AfterViewInit, OnDestroy {
1644
+ requestedByUser?: {
1645
+ firstName: string;
1646
+ lastName: string;
1647
+ };
1648
+ viewMode: ViewModeEnum;
1649
+ embedded: boolean;
1650
+ scrollEvent?: Event;
1651
+ scrollElement?: HTMLElement;
1652
+ isLoading: boolean;
1653
+ useSampleData: boolean;
1654
+ profile?: ProfileInterface;
1655
+ protected headerScrollService: HeaderScrollService;
1656
+ protected lookupService: ProfileItemLookupService;
1657
+ protected navigationService: NavigationStateService;
1658
+ protected profileContextService: ProfileContextService;
1659
+ protected searchService: BusinessProfileSearchService;
1660
+ protected currentProfile: _angular_core.WritableSignal<ProfileInterface | undefined>;
1661
+ protected scrollProgress: _angular_core.Signal<number>;
1662
+ protected isLightMode: _angular_core.Signal<boolean>;
1663
+ protected isCompactView: _angular_core.WritableSignal<boolean>;
1664
+ protected currentSectionTitle: _angular_core.WritableSignal<string>;
1665
+ protected currentSubsectionTitle: _angular_core.WritableSignal<string>;
1666
+ protected sectionTitleFading: _angular_core.WritableSignal<boolean>;
1667
+ protected subsectionTitleFading: _angular_core.WritableSignal<boolean>;
1668
+ protected selectedSearchIndex: _angular_core.WritableSignal<number>;
1669
+ protected sections: _angular_core.Signal<ProfileSectionInterface[]>;
1670
+ private subsectionObserver?;
1671
+ private sectionUpdateTimeout?;
1672
+ private subsectionUpdateTimeout?;
1673
+ private lastSectionTitle;
1674
+ private lastSubsectionTitle;
1675
+ private scrollToTargetHandler?;
1676
+ private lastScrollY;
1677
+ private scrollDirection;
1678
+ private scrollDirectionHandler?;
1679
+ protected sectionHasContent(section: ProfileSectionInterface): boolean;
1680
+ protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
1681
+ constructor();
1682
+ onScroll(): void;
1683
+ protected toggleExpandedView(): void;
1684
+ handleKeyDown(event: KeyboardEvent): void;
1685
+ protected openSearch(): void;
1686
+ protected closeSearch(): void;
1687
+ protected onSearchChange(query: string): void;
1688
+ protected onSearchResultSelected(result: BusinessSearchResult): void;
1689
+ private scrollToSearchResult;
1690
+ private highlightAndPulseItem;
1691
+ ngOnInit(): void;
1692
+ ngAfterViewInit(): void;
1693
+ ngOnDestroy(): void;
1694
+ protected getContainerClasses(): string;
1695
+ protected getBackgroundClasses(): string;
1696
+ protected getMeshGradientClasses(): string;
1697
+ protected getTopoPatternClasses(): string;
1698
+ protected getOrbClasses(index: number): string;
1699
+ protected getHeaderClasses(): string;
1700
+ protected getMainTitleClasses(): string;
1701
+ protected getSubtitleClasses(): string;
1702
+ protected getLoadingOverlayClasses(): string;
1703
+ protected getSpinnerClasses(): string;
1704
+ protected trackBySectionId(index: number, section: ProfileSectionInterface): string | number;
1705
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqBusinessAnalysisDashboardComponent, never>;
1706
+ 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; }; }, {}, never, never, true, never>;
1707
+ }
1708
+
1709
+ declare class ProfileSectionComponent {
1710
+ private sectionSignal;
1711
+ set section(value: ProfileSectionInterface | undefined);
1712
+ get section(): ProfileSectionInterface | null;
1713
+ viewMode: ViewModeEnum;
1714
+ forceExpanded: boolean;
1715
+ protected visibleSubsections: _angular_core.Signal<ProfileSubsectionInterface[]>;
1716
+ protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
1717
+ protected getContainerClasses(): string;
1718
+ protected getIconContainerClasses(): string;
1719
+ protected getTitleClasses(): string;
1720
+ protected getDividerClasses(): string;
1721
+ protected trackBySubsectionId(index: number, subsection: ProfileSubsectionInterface): string | number;
1722
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSectionComponent, never>;
1723
+ 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>;
1724
+ }
1725
+
1726
+ declare class ProfileSubsectionComponent {
1727
+ subsection?: ProfileSubsectionInterface;
1728
+ viewMode: ViewModeEnum;
1729
+ parentSectionTitle?: string;
1730
+ subsectionIndex: number;
1731
+ forceExpanded: boolean;
1732
+ private sanitizer;
1733
+ private profileContextService;
1734
+ protected ProfileItemTypeEnum: typeof ProfileItemTypeEnum;
1735
+ protected sortedItems: _angular_core.Signal<ProfileItemInterface[]>;
1736
+ protected formatContentWithLineBreaks(content: string): SafeHtml;
1737
+ protected getContainerClasses(): string;
1738
+ protected getIconClasses(): string;
1739
+ protected getTitleClasses(): string;
1740
+ protected getContentClasses(): string;
1741
+ protected getVisualContainerClasses(): string;
1742
+ protected getDisplayContent(): string | null;
1743
+ protected trackByItemId(index: number, item: ProfileItemInterface): string | number;
1744
+ protected getCompetitiveBenchmark(): any;
1745
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSubsectionComponent, never>;
1746
+ 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>;
1747
+ }
1748
+
1749
+ declare class ProfileItemCardComponent {
1750
+ item?: ProfileItemInterface;
1751
+ viewMode: ViewModeEnum;
1752
+ subsectionId?: string;
1753
+ forceExpanded: boolean;
1754
+ animationIndex: number;
1755
+ isLoading: boolean;
1756
+ protected isRecommendation(): boolean;
1757
+ protected getCardClasses(): string;
1758
+ protected getIconClasses(): string;
1759
+ protected getLabelClasses(): string;
1760
+ protected getValueClasses(): string;
1761
+ protected getItemIcon(): IconObjectInterface$1 | undefined;
1762
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemCardComponent, never>;
1763
+ 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>;
1764
+ }
1765
+
1766
+ declare class NapkinVisualPlaceholderComponent implements OnInit, OnChanges {
1767
+ visual?: NapkinVisualInterface;
1768
+ viewMode: ViewModeEnum;
1769
+ private sanitizer;
1770
+ private modalService;
1771
+ ngOnInit(): void;
1772
+ ngOnChanges(changes: SimpleChanges): void;
1773
+ protected hasSvgData(): boolean;
1774
+ protected getSvgDataForViewMode(): string | undefined;
1775
+ protected getSanitizedSvg(): SafeHtml;
1776
+ protected getSvgContainerClasses(): string;
1777
+ protected getContainerClasses(): string;
1778
+ protected getIconContainerClasses(): string;
1779
+ protected getTitleClasses(): string;
1780
+ protected getSubtitleClasses(): string;
1781
+ protected getBadgeClasses(): string;
1782
+ protected getStyleLabel(styleId?: string): string;
1783
+ protected getExpandIconClasses(): string;
1784
+ protected openModal(): void;
1785
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NapkinVisualPlaceholderComponent, never>;
1786
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NapkinVisualPlaceholderComponent, "symphiq-napkin-visual-placeholder", never, { "visual": { "alias": "visual"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
1787
+ }
1788
+
1789
+ declare class HierarchyDisplayComponent {
1790
+ hierarchyData?: HierarchyDataInterface;
1791
+ viewMode: ViewModeEnum;
1792
+ protected getNodeClasses(level: number): string;
1793
+ protected getNodeIconClasses(level: number): string;
1794
+ protected getNodeLabelClasses(): string;
1795
+ protected getNodeTextClasses(): string;
1796
+ protected getConnectorClasses(): string;
1797
+ protected getCompetitiveMetricsClasses(): string;
1798
+ protected getCompetitiveMetricsTitleClasses(): string;
1799
+ protected hasCompetitiveMetrics(): boolean;
1800
+ protected getIndustryMarketShare(): number | undefined;
1801
+ protected getCompetitorOverlap(): number | undefined;
1802
+ protected getMarketShareType(share: number): 'advantage' | 'parity' | 'disadvantage' | 'opportunity' | 'threat';
1803
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HierarchyDisplayComponent, never>;
1804
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HierarchyDisplayComponent, "symphiq-hierarchy-display", never, { "hierarchyData": { "alias": "hierarchyData"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
1805
+ }
1806
+
1807
+ declare class SectionNavigationComponent implements OnInit {
1808
+ sections: ProfileSectionInterface[];
1809
+ viewMode: ViewModeEnum;
1810
+ embedded: boolean;
1811
+ protected activeSection: _angular_core.WritableSignal<number>;
1812
+ ngOnInit(): void;
1813
+ protected getNavClasses(): string;
1814
+ protected getDotClasses(index: number): string;
1815
+ protected getDotInnerClasses(index: number): string;
1816
+ protected scrollToSection(sectionId: string): void;
1817
+ protected trackBySectionId(index: number, section: ProfileSectionInterface): string | number;
1818
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionNavigationComponent, never>;
1819
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionNavigationComponent, "symphiq-section-navigation", never, { "sections": { "alias": "sections"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
1820
+ }
1821
+
1822
+ declare class FloatingTocComponent implements OnInit, OnDestroy {
1823
+ sections: ProfileSectionInterface[];
1824
+ viewMode: ViewModeEnum;
1825
+ embedded: boolean;
1826
+ protected isHovered: _angular_core.WritableSignal<boolean>;
1827
+ protected isPinned: _angular_core.WritableSignal<boolean>;
1828
+ protected activeSection: _angular_core.WritableSignal<string>;
1829
+ protected activeSubsection: _angular_core.WritableSignal<string>;
1830
+ protected expandedSections: _angular_core.WritableSignal<Set<string>>;
1831
+ private readonly HEADER_OFFSET;
1832
+ protected tocSections: _angular_core.Signal<{
1833
+ id: string;
1834
+ title: string;
1835
+ icon: _jebgem_model.IconObjectInterface | undefined;
1836
+ subsections: {
1837
+ id: string;
1838
+ title: string;
1839
+ parentId: string;
1840
+ }[];
1841
+ }[]>;
1842
+ private observer?;
1843
+ ngOnInit(): void;
1844
+ ngOnDestroy(): void;
1845
+ private setupIntersectionObserver;
1846
+ protected onMouseEnter(): void;
1847
+ protected onMouseLeave(): void;
1848
+ protected togglePinned(): void;
1849
+ protected isSectionExpanded(sectionId: string): boolean;
1850
+ protected scrollToSection(sectionId: string): void;
1851
+ protected scrollToSubsection(subsectionId: string): void;
1852
+ protected scrollToTop(): void;
1853
+ protected getOuterContainerClasses(): string;
1854
+ protected getInnerContainerClasses(): string;
1855
+ protected getCollapsedIconClasses(): string;
1856
+ protected getExpandedContentClasses(): string;
1857
+ protected getBorderClasses(): string;
1858
+ protected getHeaderIconClasses(): string;
1859
+ protected getHeaderTextClasses(): string;
1860
+ protected getPinButtonClasses(): string;
1861
+ protected getScrollbarClasses(): string;
1862
+ protected getSectionButtonClasses(sectionId: string): string;
1863
+ protected getSectionIconClasses(sectionId: string): string;
1864
+ protected getActiveIndicatorClasses(): string;
1865
+ protected getSubsectionButtonClasses(subsectionId: string): string;
1866
+ protected getActiveSubIndicatorClasses(): string;
1867
+ protected getBackToTopButtonClasses(): string;
1868
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingTocComponent, never>;
1869
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingTocComponent, "symphiq-floating-toc", never, { "sections": { "alias": "sections"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
1870
+ }
1871
+
1872
+ declare class FloatingBackButtonComponent implements OnInit, OnDestroy {
1873
+ viewMode: ViewModeEnum;
1874
+ embedded: boolean;
1875
+ private navigationService;
1876
+ private readonly HEADER_OFFSET;
1877
+ protected navigationState: _angular_core.Signal<NavigationState>;
1878
+ protected isVisible: _angular_core.Signal<boolean>;
1879
+ ngOnInit(): void;
1880
+ ngOnDestroy(): void;
1881
+ protected navigateBack(): void;
1882
+ protected close(): void;
1883
+ protected getOuterContainerClasses(): string;
1884
+ protected getInnerContainerClasses(): string;
1885
+ protected getBackButtonClasses(): string;
1886
+ protected getCloseButtonClasses(): string;
1887
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingBackButtonComponent, never>;
1888
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingBackButtonComponent, "symphiq-floating-back-button", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
1889
+ }
1890
+
1891
+ declare class BusinessAnalysisModalComponent implements OnInit {
1892
+ isLightMode: _angular_core.InputSignal<boolean>;
1893
+ private modalService;
1894
+ private sanitizer;
1895
+ isOpen: _angular_core.WritableSignal<boolean>;
1896
+ modalType: _angular_core.WritableSignal<string | null>;
1897
+ modalTitle: _angular_core.WritableSignal<string>;
1898
+ visualizationData: _angular_core.WritableSignal<VisualizationData | null>;
1899
+ competitiveGapData: _angular_core.WritableSignal<{
1900
+ item: ProfileItemInterface;
1901
+ viewMode: ViewModeEnum;
1902
+ } | null>;
1903
+ recommendationActionStepsData: _angular_core.WritableSignal<{
1904
+ title?: string;
1905
+ actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
1906
+ viewMode: ViewModeEnum;
1907
+ } | null>;
1908
+ visualizationType: _angular_core.Signal<"horizontal-bar" | "circular-progress" | "napkin-visual" | "custom" | null>;
1909
+ horizontalBarData: _angular_core.Signal<{
1910
+ percentage: number;
1911
+ label: string;
1912
+ value: string;
1913
+ gradient?: string;
1914
+ }[] | null>;
1915
+ circularProgressData: _angular_core.Signal<{
1916
+ percentage: number;
1917
+ progressColor?: string;
1918
+ backgroundColor?: string;
1919
+ } | null>;
1920
+ napkinVisualData: _angular_core.Signal<{
1921
+ svgData: string;
1922
+ viewMode?: string;
1923
+ styleId?: string;
1924
+ } | null>;
1925
+ competitiveGapItem: _angular_core.Signal<ProfileItemInterface | undefined>;
1926
+ constructor();
1927
+ ngOnInit(): void;
1928
+ getSanitizedSvg(): SafeHtml;
1929
+ closeModal(): void;
1930
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BusinessAnalysisModalComponent, never>;
1931
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BusinessAnalysisModalComponent, "symphiq-business-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1932
+ }
1933
+
1934
+ declare class HorizontalBarComponent implements OnInit, OnDestroy {
1935
+ percentage: number;
1936
+ label: string;
1937
+ value: string;
1938
+ height: number;
1939
+ showLabel: boolean;
1940
+ gradient: string;
1941
+ isDark: boolean;
1942
+ animationDuration: number;
1943
+ animationDelay: number;
1944
+ private elementRef;
1945
+ private observer?;
1946
+ private animationFrame?;
1947
+ private hasAnimated;
1948
+ protected animatedPercentage: _angular_core.WritableSignal<number>;
1949
+ ngOnInit(): void;
1950
+ ngOnDestroy(): void;
1951
+ private setupObserver;
1952
+ private animateProgress;
1953
+ protected animatedDisplayValue(): string;
1954
+ get backgroundClasses(): string;
1955
+ get barClasses(): string;
1956
+ get labelClasses(): string;
1957
+ get valueClasses(): string;
1958
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HorizontalBarComponent, never>;
1959
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HorizontalBarComponent, "symphiq-horizontal-bar", never, { "percentage": { "alias": "percentage"; "required": false; }; "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "height": { "alias": "height"; "required": false; }; "showLabel": { "alias": "showLabel"; "required": false; }; "gradient": { "alias": "gradient"; "required": false; }; "isDark": { "alias": "isDark"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; }, {}, never, never, true, never>;
1960
+ }
1961
+
1962
+ declare class CircularProgressComponent implements OnInit, OnDestroy {
1963
+ percentage: number;
1964
+ size: number;
1965
+ strokeWidth: number;
1966
+ progressColor: string;
1967
+ backgroundColor: string;
1968
+ showPercentage: boolean;
1969
+ textClasses: string;
1970
+ strokeLinecap: 'butt' | 'round' | 'square';
1971
+ animationDuration: number;
1972
+ animationDelay: number;
1973
+ private elementRef;
1974
+ private observer?;
1975
+ private animationFrame?;
1976
+ private hasAnimated;
1977
+ protected animatedPercentage: _angular_core.WritableSignal<number>;
1978
+ ngOnInit(): void;
1979
+ ngOnDestroy(): void;
1980
+ private setupObserver;
1981
+ private animateProgress;
1982
+ get radius(): number;
1983
+ get circumference(): number;
1984
+ protected animatedOffset(): number;
1985
+ protected animatedDisplayValue(): string;
1986
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CircularProgressComponent, never>;
1987
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CircularProgressComponent, "symphiq-circular-progress", never, { "percentage": { "alias": "percentage"; "required": false; }; "size": { "alias": "size"; "required": false; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; }; "progressColor": { "alias": "progressColor"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "showPercentage": { "alias": "showPercentage"; "required": false; }; "textClasses": { "alias": "textClasses"; "required": false; }; "strokeLinecap": { "alias": "strokeLinecap"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; }, {}, never, never, true, never>;
1988
+ }
1989
+
1990
+ type VisualizationType = 'horizontal-bar' | 'circular-progress' | 'custom';
1991
+ declare class VisualizationContainerComponent {
1992
+ isLightMode: _angular_core.InputSignal<boolean>;
1993
+ visualizationType: _angular_core.InputSignal<VisualizationType>;
1994
+ visualizationData: _angular_core.InputSignal<unknown>;
1995
+ disableInteraction: _angular_core.InputSignal<boolean>;
1996
+ visualizationClick: _angular_core.OutputEmitterRef<{
1997
+ type: VisualizationType;
1998
+ data: unknown;
1999
+ }>;
2000
+ containerClass: _angular_core.Signal<"" | "cursor-pointer">;
2001
+ iconClass: _angular_core.Signal<"text-slate-400 group-hover:text-blue-500" | "text-slate-500 group-hover:text-blue-400">;
2002
+ onExpandClick(event: Event): void;
2003
+ onVisualizationClick(event: Event): void;
2004
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VisualizationContainerComponent, never>;
2005
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<VisualizationContainerComponent, "symphiq-visualization-container", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "visualizationType": { "alias": "visualizationType"; "required": false; "isSignal": true; }; "visualizationData": { "alias": "visualizationData"; "required": false; "isSignal": true; }; "disableInteraction": { "alias": "disableInteraction"; "required": false; "isSignal": true; }; }, { "visualizationClick": "visualizationClick"; }, never, ["*"], true, never>;
2006
+ }
2007
+
2008
+ declare class ScrollProgressBarComponent {
2009
+ set progress(value: number);
2010
+ isLightMode: boolean;
2011
+ embedded: boolean;
2012
+ protected scrollProgress: _angular_core.WritableSignal<number>;
2013
+ protected getContainerClasses(): string;
2014
+ protected getGradientClasses(): string;
2015
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollProgressBarComponent, never>;
2016
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollProgressBarComponent, "symphiq-scroll-progress-bar", never, { "progress": { "alias": "progress"; "required": false; }; "isLightMode": { "alias": "isLightMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
2017
+ }
2018
+
2019
+ interface IconObjectInterface {
2020
+ name?: string;
2021
+ source?: 'HEROICONS' | string;
2022
+ }
2023
+ declare class SymphiqIconComponent {
2024
+ private iconService;
2025
+ set icon(value: IconObjectInterface | undefined);
2026
+ set size(value: string);
2027
+ set customClass(value: string);
2028
+ private iconSignal;
2029
+ private sizeSignal;
2030
+ private customClassSignal;
2031
+ protected containerClass: _angular_core.Signal<string>;
2032
+ private iconRequest$;
2033
+ protected iconHtml: _angular_core.Signal<"" | _angular_platform_browser.SafeHtml>;
2034
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqIconComponent, never>;
2035
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqIconComponent, "symphiq-icon", never, { "icon": { "alias": "icon"; "required": false; }; "size": { "alias": "size"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; }, {}, never, never, true, never>;
2036
+ }
2037
+
2038
+ declare class SectionDividerComponent {
2039
+ viewMode: ViewModeEnum;
2040
+ animationDelay: string;
2041
+ private subsectionsSignal;
2042
+ set subsections(value: ProfileSubsectionInterface[] | undefined);
2043
+ protected displayIcons: _angular_core.Signal<_jebgem_model.IconObjectInterface[]>;
2044
+ protected isLightMode(): boolean;
2045
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionDividerComponent, never>;
2046
+ 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>;
2047
+ }
2048
+
2049
+ declare class SearchButtonComponent {
2050
+ isLightMode: _angular_core.InputSignal<boolean>;
2051
+ minimized: _angular_core.InputSignal<boolean>;
2052
+ title: _angular_core.InputSignal<string>;
2053
+ searchClick: _angular_core.OutputEmitterRef<void>;
2054
+ buttonClass: _angular_core.Signal<"bg-slate-100 text-slate-700 hover:bg-slate-200 hover:text-slate-900" | "bg-slate-800 text-slate-300 hover:bg-slate-700 hover:text-white">;
2055
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchButtonComponent, never>;
2056
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchButtonComponent, "symphiq-search-button", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "minimized": { "alias": "minimized"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "searchClick": "searchClick"; }, never, never, true, never>;
2057
+ }
2058
+
2059
+ declare class SearchModalComponent {
2060
+ searchInput?: ElementRef<HTMLInputElement>;
2061
+ isLightMode: _angular_core.InputSignal<boolean>;
2062
+ isOpen: _angular_core.InputSignal<boolean>;
2063
+ searchQuery: _angular_core.InputSignal<string>;
2064
+ results: _angular_core.InputSignal<BusinessSearchResult[]>;
2065
+ hasResults: _angular_core.InputSignal<boolean>;
2066
+ selectedIndex: _angular_core.InputSignal<number>;
2067
+ placeholder: _angular_core.InputSignal<string>;
2068
+ searchChange: _angular_core.OutputEmitterRef<string>;
2069
+ resultSelected: _angular_core.OutputEmitterRef<BusinessSearchResult>;
2070
+ close: _angular_core.OutputEmitterRef<void>;
2071
+ constructor();
2072
+ onSearchChange(query: string): void;
2073
+ clearSearch(): void;
2074
+ closeModal(): void;
2075
+ selectResult(result: BusinessSearchResult): void;
2076
+ getResultClass(index: number): string;
2077
+ getTypeIconBgClass(type: string): string;
2078
+ getTypeIconClass(type: string): string;
2079
+ getTypeBadgeText(result: BusinessSearchResult): string;
2080
+ containerClass: _angular_core.Signal<"bg-white border border-slate-200" | "bg-slate-800 border border-slate-700">;
2081
+ inputClass: _angular_core.Signal<"bg-white text-slate-900 placeholder-slate-400" | "bg-slate-800 text-white placeholder-slate-500">;
2082
+ iconClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
2083
+ clearButtonClass: _angular_core.Signal<"bg-slate-100 text-slate-600 hover:bg-slate-200" | "bg-slate-700 text-slate-300 hover:bg-slate-600">;
2084
+ 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">;
2085
+ resultsContainerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
2086
+ resultTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2087
+ resultDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2088
+ breadcrumbClass: _angular_core.Signal<string>;
2089
+ typeBadgeClass: _angular_core.Signal<"bg-slate-100 text-slate-600" | "bg-slate-700 text-slate-300">;
2090
+ arrowClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
2091
+ emptyStateClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
2092
+ emptyIconClass: _angular_core.Signal<"text-slate-600" | "text-slate-300">;
2093
+ emptyTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2094
+ emptyDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2095
+ shortcutsClass: _angular_core.Signal<"bg-slate-900/50 border-slate-700" | "bg-slate-50 border-slate-200">;
2096
+ 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">;
2097
+ shortcutTextClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2098
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchModalComponent, never>;
2099
+ 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>;
2100
+ }
2101
+
1454
2102
  declare class ChartContainerComponent {
1455
2103
  chart: _angular_core.InputSignal<AiChartInterface>;
1456
2104
  isLightMode: _angular_core.InputSignal<boolean>;
@@ -1460,6 +2108,7 @@ declare class ChartContainerComponent {
1460
2108
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1461
2109
  chartClick: _angular_core.OutputEmitterRef<AiChartInterface>;
1462
2110
  isExpanded: _angular_core.WritableSignal<boolean>;
2111
+ protected ChartTypeEnum: typeof ChartTypeEnum;
1463
2112
  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">;
1464
2113
  headerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
1465
2114
  titleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
@@ -1482,7 +2131,7 @@ declare class LineChartComponent implements OnInit, AfterViewInit, OnDestroy {
1482
2131
  chart: _angular_core.InputSignal<AiChartInterface>;
1483
2132
  showAxisLabels: _angular_core.InputSignal<boolean>;
1484
2133
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1485
- chartHeight: _angular_core.Signal<"500px" | "133px">;
2134
+ chartHeight: _angular_core.Signal<"133px" | "500px">;
1486
2135
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
1487
2136
  tooltipTextColor: _angular_core.Signal<0 | 16777215>;
1488
2137
  chartHash: _angular_core.Signal<string>;
@@ -1525,7 +2174,7 @@ declare class BarChartComponent implements OnInit, AfterViewInit, OnDestroy {
1525
2174
  chart: _angular_core.InputSignal<AiChartInterface>;
1526
2175
  showAxisLabels: _angular_core.InputSignal<boolean>;
1527
2176
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1528
- chartHeight: _angular_core.Signal<"500px" | "175px">;
2177
+ chartHeight: _angular_core.Signal<"175px" | "500px">;
1529
2178
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
1530
2179
  tooltipTextColor: _angular_core.Signal<0 | 16777215>;
1531
2180
  chartHash: _angular_core.Signal<string>;
@@ -1561,7 +2210,7 @@ declare class PieChartComponent implements OnInit, AfterViewInit, OnDestroy {
1561
2210
  chart: _angular_core.InputSignal<AiChartInterface>;
1562
2211
  showAxisLabels: _angular_core.InputSignal<boolean>;
1563
2212
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1564
- chartHeight: _angular_core.Signal<"500px" | "200px">;
2213
+ chartHeight: _angular_core.Signal<"200px" | "500px">;
1565
2214
  chartHash: _angular_core.Signal<string>;
1566
2215
  chartDiv: ElementRef;
1567
2216
  private root?;
@@ -1596,7 +2245,7 @@ declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
1596
2245
  chart: _angular_core.InputSignal<AiChartInterface>;
1597
2246
  showAxisLabels: _angular_core.InputSignal<boolean>;
1598
2247
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1599
- chartHeight: _angular_core.Signal<"500px" | "133px">;
2248
+ chartHeight: _angular_core.Signal<"133px" | "500px">;
1600
2249
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
1601
2250
  chartHash: _angular_core.Signal<string>;
1602
2251
  chartDiv: ElementRef;
@@ -1630,6 +2279,7 @@ declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
1630
2279
  declare class TooltipContainerComponent {
1631
2280
  isLightMode: _angular_core.WritableSignal<boolean>;
1632
2281
  private tooltipService;
2282
+ private navigationService;
1633
2283
  private elementRef;
1634
2284
  private renderer;
1635
2285
  private tooltipStateSignal;
@@ -1661,6 +2311,7 @@ declare class TooltipContainerComponent {
1661
2311
  containerClass: _angular_core.Signal<"" | "-translate-x-1/2">;
1662
2312
  contentClass: _angular_core.Signal<"bg-white/95 border-slate-300 text-slate-900" | "bg-slate-800/95 border-slate-600 text-white">;
1663
2313
  textClass: _angular_core.Signal<"text-slate-700" | "text-slate-200">;
2314
+ 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">;
1664
2315
  transformStyle: _angular_core.Signal<"none" | "translateX(-192px)">;
1665
2316
  constructor();
1666
2317
  onTooltipMouseEnter(): void;
@@ -1668,6 +2319,7 @@ declare class TooltipContainerComponent {
1668
2319
  private calculateLeft;
1669
2320
  private calculateTop;
1670
2321
  private findTransformedAncestor;
2322
+ scrollToTarget(targetId: string): void;
1671
2323
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipContainerComponent, never>;
1672
2324
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipContainerComponent, "symphiq-tooltip-container", never, {}, {}, never, never, true, never>;
1673
2325
  }
@@ -1689,7 +2341,6 @@ declare class TooltipDirective implements OnDestroy {
1689
2341
  onMouseEnter(event: MouseEvent): void;
1690
2342
  onMouseMove(event: MouseEvent): void;
1691
2343
  onMouseLeave(): void;
1692
- onMouseEnterAgain(): void;
1693
2344
  onFocus(): void;
1694
2345
  onBlur(): void;
1695
2346
  private scheduleShow;
@@ -1701,8 +2352,266 @@ declare class TooltipDirective implements OnDestroy {
1701
2352
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[libSymphiqTooltip]", never, { "symphiqTooltip": { "alias": "libSymphiqTooltip"; "required": false; "isSignal": true; }; "tooltipType": { "alias": "tooltipType"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "tooltipDelay": { "alias": "tooltipDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1702
2353
  }
1703
2354
 
2355
+ declare class ShadowElevationDirective implements OnInit, OnDestroy {
2356
+ private el;
2357
+ private renderer;
2358
+ private scrollDepthService;
2359
+ private platformId;
2360
+ scrollContainer?: HTMLElement | 'window';
2361
+ shadowOffset: number;
2362
+ private subscription?;
2363
+ private containerId;
2364
+ private currentShadowClass;
2365
+ private currentBorderClass;
2366
+ private currentBackgroundClass;
2367
+ private intersectionObserver?;
2368
+ private isVisible;
2369
+ constructor(el: ElementRef<HTMLElement>, renderer: Renderer2, scrollDepthService: ScrollDepthService, platformId: Object);
2370
+ ngOnInit(): void;
2371
+ private setupIntersectionObserver;
2372
+ private updateShadow;
2373
+ private getShadowClasses;
2374
+ ngOnDestroy(): void;
2375
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShadowElevationDirective, never>;
2376
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShadowElevationDirective, "[symphiqShadowElevation]", never, { "scrollContainer": { "alias": "symphiqShadowElevation"; "required": false; }; "shadowOffset": { "alias": "shadowOffset"; "required": false; }; }, {}, never, never, true, never>;
2377
+ }
2378
+
2379
+ type AnimationType = 'fade-in' | 'slide-up' | 'slide-left' | 'slide-right' | 'zoom-in' | 'none';
2380
+ declare class ViewportAnimationDirective implements OnInit, OnDestroy {
2381
+ private el;
2382
+ private renderer;
2383
+ symphiqViewportAnimation: AnimationType;
2384
+ animationDelay: number;
2385
+ animationDuration: number;
2386
+ staggerIndex: number;
2387
+ staggerDelay: number;
2388
+ threshold: number;
2389
+ rootMargin: string;
2390
+ once: boolean;
2391
+ private observer?;
2392
+ private hasAnimated;
2393
+ constructor(el: ElementRef, renderer: Renderer2);
2394
+ ngOnInit(): void;
2395
+ ngOnDestroy(): void;
2396
+ private setupInitialState;
2397
+ private setupObserver;
2398
+ private animateIn;
2399
+ private animateOut;
2400
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewportAnimationDirective, never>;
2401
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ViewportAnimationDirective, "[symphiqViewportAnimation]", never, { "symphiqViewportAnimation": { "alias": "symphiqViewportAnimation"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "staggerIndex": { "alias": "staggerIndex"; "required": false; }; "staggerDelay": { "alias": "staggerDelay"; "required": false; }; "threshold": { "alias": "threshold"; "required": false; }; "rootMargin": { "alias": "rootMargin"; "required": false; }; "once": { "alias": "once"; "required": false; }; }, {}, never, never, true, never>;
2402
+ }
2403
+
2404
+ type BadgeType = 'primary' | 'success' | 'warning' | 'info' | 'premium' | 'default' | 'danger' | 'neutral';
2405
+
2406
+ declare class FocusAreaDetailCardComponent {
2407
+ item?: ProfileItemInterface;
2408
+ viewMode: ViewModeEnum;
2409
+ set forceExpanded(value: boolean);
2410
+ animationIndex: number;
2411
+ protected IconSourceEnum: typeof IconSourceEnum;
2412
+ protected isExpanded: _angular_core.WritableSignal<boolean>;
2413
+ private _forceExpanded;
2414
+ private _hasAnimated;
2415
+ private modalService;
2416
+ private profileContextService;
2417
+ protected isDark: _angular_core.Signal<boolean>;
2418
+ protected isActuallyExpanded: _angular_core.Signal<boolean>;
2419
+ protected forceExpandedValue: _angular_core.Signal<boolean>;
2420
+ protected shouldAnimateExpand: _angular_core.Signal<boolean>;
2421
+ protected iconSize: _angular_core.Signal<"w-6 h-6" | "w-7 h-7">;
2422
+ protected relatedRecommendations: _angular_core.Signal<_jebgem_model.ProfileAnalysisRecommendationInterface[]>;
2423
+ protected statusLabel: _angular_core.Signal<string>;
2424
+ protected statusBadgeType: _angular_core.Signal<BadgeType>;
2425
+ protected statusIcon: _angular_core.Signal<IconObjectInterface$1>;
2426
+ protected insightsIcon: _angular_core.Signal<IconObjectInterface$1>;
2427
+ protected recommendationsIcon: _angular_core.Signal<IconObjectInterface$1>;
2428
+ protected relatedIcon: _angular_core.Signal<IconObjectInterface$1>;
2429
+ protected cardClasses: _angular_core.Signal<string>;
2430
+ protected iconClasses: _angular_core.Signal<string>;
2431
+ protected labelClasses: _angular_core.Signal<string>;
2432
+ protected descriptionClasses: _angular_core.Signal<"text-sm text-slate-400 mt-1 leading-relaxed" | "text-sm text-slate-600 mt-1 leading-relaxed">;
2433
+ protected metaLabelClasses: _angular_core.Signal<"text-xs font-medium text-slate-400 uppercase tracking-wide" | "text-xs font-medium text-slate-600 uppercase tracking-wide">;
2434
+ protected toolChipClasses: _angular_core.Signal<"px-2.5 py-1 rounded-md bg-emerald-500/10 text-emerald-300 text-xs border border-emerald-500/30" | "px-2.5 py-1 rounded-md bg-emerald-50 text-emerald-700 text-xs border border-emerald-200">;
2435
+ protected expandedSectionClasses: _angular_core.Signal<"p-4 rounded-lg bg-slate-700/30 border border-slate-600/30" | "p-4 rounded-lg bg-slate-50 border border-slate-200">;
2436
+ protected expandedIconClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2437
+ protected expandedTitleClasses: _angular_core.Signal<"text-sm font-semibold text-white" | "text-sm font-semibold text-slate-900">;
2438
+ protected insightItemClasses: _angular_core.Signal<"text-sm text-slate-300 leading-relaxed flex" | "text-sm text-slate-600 leading-relaxed flex">;
2439
+ protected expandButtonClasses: _angular_core.Signal<"text-sm font-medium text-blue-400" | "text-sm font-medium text-blue-600">;
2440
+ protected chevronClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2441
+ protected toggleExpanded(): void;
2442
+ protected openCompetitiveGapModal(): void;
2443
+ onExpandItem(event: CustomEvent): void;
2444
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FocusAreaDetailCardComponent, never>;
2445
+ 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>;
2446
+ }
2447
+
2448
+ interface CompetitorContext {
2449
+ geographic?: ProfileItemInterface[];
2450
+ price?: ProfileItemInterface[];
2451
+ seasonal?: ProfileItemInterface[];
2452
+ audience?: ProfileItemInterface[];
2453
+ product?: ProfileItemInterface[];
2454
+ focusAreas?: ProfileItemInterface[];
2455
+ }
2456
+
2457
+ declare class CompetitorAnalysisCardComponent {
2458
+ item?: ProfileItemInterface;
2459
+ viewMode: ViewModeEnum;
2460
+ set forceExpanded(value: boolean);
2461
+ animationIndex: number;
2462
+ protected IconSourceEnum: typeof IconSourceEnum;
2463
+ protected isExpanded: _angular_core.WritableSignal<boolean>;
2464
+ private _forceExpanded;
2465
+ private _hasAnimated;
2466
+ private modalService;
2467
+ private profileContextService;
2468
+ private navigationService;
2469
+ protected isDark: _angular_core.Signal<boolean>;
2470
+ protected isActuallyExpanded: _angular_core.Signal<boolean>;
2471
+ protected forceExpandedValue: _angular_core.Signal<boolean>;
2472
+ protected shouldAnimateExpand: _angular_core.Signal<boolean>;
2473
+ protected iconSize: _angular_core.Signal<"w-6 h-6" | "w-7 h-7">;
2474
+ protected hasCompanyInfo: _angular_core.Signal<boolean>;
2475
+ protected competitorContext: _angular_core.Signal<CompetitorContext | undefined>;
2476
+ protected hasAnyContext: _angular_core.Signal<boolean>;
2477
+ protected threatLevelLabel: _angular_core.Signal<string>;
2478
+ protected threatLevelBadgeType: _angular_core.Signal<BadgeType>;
2479
+ protected threatLevelIcon: _angular_core.Signal<IconObjectInterface$1>;
2480
+ protected getStrengthArea(strength: any): string;
2481
+ protected getStrengthText(strength: any): string;
2482
+ protected getWeaknessArea(weakness: any): string;
2483
+ protected getWeaknessText(weakness: any): string;
2484
+ protected websiteIcon: _angular_core.Signal<IconObjectInterface$1>;
2485
+ protected strategyIcon: _angular_core.Signal<IconObjectInterface$1>;
2486
+ protected strengthIcon: _angular_core.Signal<IconObjectInterface$1>;
2487
+ protected weaknessIcon: _angular_core.Signal<IconObjectInterface$1>;
2488
+ protected advantageIcon: _angular_core.Signal<IconObjectInterface$1>;
2489
+ protected vulnerabilityIcon: _angular_core.Signal<IconObjectInterface$1>;
2490
+ protected relatedIcon: _angular_core.Signal<IconObjectInterface$1>;
2491
+ protected contextIcon: _angular_core.Signal<IconObjectInterface$1>;
2492
+ protected cardClasses: _angular_core.Signal<string>;
2493
+ protected iconClasses: _angular_core.Signal<string>;
2494
+ protected labelClasses: _angular_core.Signal<string>;
2495
+ protected descriptionClasses: _angular_core.Signal<"text-sm text-slate-400 mt-1 leading-relaxed" | "text-sm text-slate-600 mt-1 leading-relaxed">;
2496
+ protected infoBoxClasses: _angular_core.Signal<"p-2.5 rounded-lg bg-slate-700/30 border border-slate-600/30" | "p-2.5 rounded-lg bg-slate-50 border border-slate-200">;
2497
+ protected infoLabelClasses: _angular_core.Signal<"text-xs text-slate-400 mb-0.5" | "text-xs text-slate-600 mb-0.5">;
2498
+ protected infoValueClasses: _angular_core.Signal<"text-sm font-semibold text-white" | "text-sm font-semibold text-slate-900">;
2499
+ protected linkClasses: _angular_core.Signal<"text-sm text-blue-400 hover:text-blue-300 underline transition-colors" | "text-sm text-blue-600 hover:text-blue-700 underline transition-colors">;
2500
+ protected listItemClasses: _angular_core.Signal<"text-sm text-slate-200 leading-relaxed flex items-start" | "text-sm text-slate-600 leading-relaxed flex items-start">;
2501
+ protected expandedSectionClasses: _angular_core.Signal<"p-4 rounded-lg bg-slate-700/30 border border-slate-600/30" | "p-4 rounded-lg bg-slate-50 border border-slate-200">;
2502
+ protected expandedIconClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2503
+ protected expandedTitleClasses: _angular_core.Signal<"text-sm font-semibold text-white" | "text-sm font-semibold text-slate-900">;
2504
+ protected expandedTextClasses: _angular_core.Signal<"text-sm text-slate-300 leading-relaxed" | "text-sm text-slate-600 leading-relaxed">;
2505
+ protected expandButtonClasses: _angular_core.Signal<"text-sm font-medium text-blue-400" | "text-sm font-medium text-blue-600">;
2506
+ protected chevronClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2507
+ protected toggleExpanded(): void;
2508
+ protected navigateToItem(item: ProfileItemInterface): void;
2509
+ onExpandItem(event: CustomEvent): void;
2510
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CompetitorAnalysisCardComponent, never>;
2511
+ 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>;
2512
+ }
2513
+
2514
+ declare class OpportunityHighlightBannerComponent {
2515
+ title: string;
2516
+ message?: string;
2517
+ isDark: boolean;
2518
+ bannerClick: EventEmitter<void>;
2519
+ protected iconSource: IconSourceEnum;
2520
+ 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">;
2521
+ protected iconContainerClasses: _angular_core.Signal<"bg-amber-500/20 text-amber-400" | "bg-amber-100 text-amber-600">;
2522
+ protected titleClasses: _angular_core.Signal<"text-amber-300" | "text-amber-900">;
2523
+ protected badgeClasses: _angular_core.Signal<"bg-amber-500/30 text-amber-300" | "bg-amber-200 text-amber-800">;
2524
+ protected messageClasses: _angular_core.Signal<"text-amber-700" | "text-amber-400/90">;
2525
+ protected chevronClasses: _angular_core.Signal<"text-amber-600" | "text-amber-400">;
2526
+ handleClick(event: Event): void;
2527
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OpportunityHighlightBannerComponent, never>;
2528
+ 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>;
2529
+ }
2530
+
2531
+ declare class SkeletonCardBaseComponent {
2532
+ viewMode: ViewModeEnum;
2533
+ protected getCardClasses(): string;
2534
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCardBaseComponent, never>;
2535
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCardBaseComponent, "symphiq-skeleton-card-base", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, ["*"], true, never>;
2536
+ }
2537
+ declare class SkeletonBarComponent {
2538
+ viewMode: ViewModeEnum;
2539
+ width: string;
2540
+ height: string;
2541
+ protected getClasses(): string;
2542
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonBarComponent, never>;
2543
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonBarComponent, "symphiq-skeleton-bar", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; }, {}, never, never, true, never>;
2544
+ }
2545
+ declare class SkeletonCircleComponent {
2546
+ viewMode: ViewModeEnum;
2547
+ size: string;
2548
+ protected getClasses(): string;
2549
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCircleComponent, never>;
2550
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCircleComponent, "symphiq-skeleton-circle", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
2551
+ }
2552
+
2553
+ declare class SkeletonCustomerSegmentCardComponent {
2554
+ viewMode: ViewModeEnum;
2555
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCustomerSegmentCardComponent, never>;
2556
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCustomerSegmentCardComponent, "symphiq-skeleton-customer-segment-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2557
+ }
2558
+
2559
+ declare class SkeletonProductCategoryCardComponent {
2560
+ viewMode: ViewModeEnum;
2561
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonProductCategoryCardComponent, never>;
2562
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonProductCategoryCardComponent, "symphiq-skeleton-product-category-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2563
+ }
2564
+
2565
+ declare class SkeletonGenericCardComponent {
2566
+ viewMode: ViewModeEnum;
2567
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonGenericCardComponent, never>;
2568
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonGenericCardComponent, "symphiq-skeleton-generic-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2569
+ }
2570
+ declare class SkeletonRegionCardComponent {
2571
+ viewMode: ViewModeEnum;
2572
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonRegionCardComponent, never>;
2573
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonRegionCardComponent, "symphiq-skeleton-region-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2574
+ }
2575
+ declare class SkeletonSeasonCardComponent {
2576
+ viewMode: ViewModeEnum;
2577
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonSeasonCardComponent, never>;
2578
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonSeasonCardComponent, "symphiq-skeleton-season-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2579
+ }
2580
+ declare class SkeletonPriceTierCardComponent {
2581
+ viewMode: ViewModeEnum;
2582
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonPriceTierCardComponent, never>;
2583
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonPriceTierCardComponent, "symphiq-skeleton-price-tier-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2584
+ }
2585
+
2586
+ declare class SkeletonFocusAreaCardComponent {
2587
+ viewMode: ViewModeEnum;
2588
+ protected isDark: _angular_core.Signal<boolean>;
2589
+ protected iconSkeletonClasses: _angular_core.Signal<"w-12 h-12 bg-slate-700" | "w-12 h-12 bg-slate-200">;
2590
+ protected titleSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
2591
+ protected textSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
2592
+ protected badgeSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
2593
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonFocusAreaCardComponent, never>;
2594
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonFocusAreaCardComponent, "symphiq-skeleton-focus-area-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2595
+ }
2596
+
2597
+ declare class SkeletonCompetitorCardComponent {
2598
+ viewMode: ViewModeEnum;
2599
+ protected isDark: _angular_core.Signal<boolean>;
2600
+ protected iconSkeletonClasses: _angular_core.Signal<"w-12 h-12 bg-slate-700" | "w-12 h-12 bg-slate-200">;
2601
+ protected titleSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
2602
+ protected textSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
2603
+ protected boxSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
2604
+ protected badgeSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
2605
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCompetitorCardComponent, never>;
2606
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCompetitorCardComponent, "symphiq-skeleton-competitor-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
2607
+ }
2608
+
1704
2609
  declare const FUNNEL_ANALYSIS: FunnelAnalysisInterface;
1705
2610
 
2611
+ declare const BUSINESS_PROFILE: ProfileInterface;
2612
+ declare const RCC_BUSINESS_PROFILE: ProfileInterface;
2613
+ declare const HAMMETON_BUSINESS_PROFILE: ProfileInterface;
2614
+
1706
2615
  /**
1707
2616
  * Shared Theme Color Utilities
1708
2617
  *
@@ -1812,6 +2721,23 @@ declare function getStatusDotClasses(status: string, viewMode: ViewModeEnum): st
1812
2721
  */
1813
2722
  declare function getTrendClasses(trendPercent: number, viewMode: ViewModeEnum): string;
1814
2723
 
1815
- export { AreaChartComponent, BarChartComponent, BreakdownSectionComponent, ChartContainerComponent, ChartThemeService, CompetitivePositioningSummaryComponent, FUNNEL_ANALYSIS, FunnelOrderService, InsightCardComponent, LineChartComponent, MetricCardComponent, MetricFormatterService, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, OverallAssessmentComponent, PieChartComponent, SkeletonLoaderComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, getBadgeLabelClasses, getButtonClasses, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
1816
- export type { ChartThemeColors, FunnelMetricOrder, GestureDetail, LayoutMode, Metric, ModalState, NavSection, ScrollBaseCustomEvent, ScrollBaseDetail, ScrollCustomEvent, ScrollDetail, SemanticColors, ThemeColorContext, ThemeMode, TooltipPosition, TooltipState, TooltipType, ViewMode, ViewportBounds };
2724
+ /**
2725
+ * Utility for generating consistent colors for dynamic category badges
2726
+ */
2727
+ interface CategoryColorPalette {
2728
+ light: string;
2729
+ dark: string;
2730
+ }
2731
+ /**
2732
+ * Gets a consistent color palette for a given category
2733
+ * Same category will always return the same color
2734
+ */
2735
+ declare function getCategoryColor(category: string): CategoryColorPalette;
2736
+ /**
2737
+ * Gets the appropriate color classes for a category badge
2738
+ */
2739
+ declare function getCategoryBadgeClasses(category: string, isDark: boolean): string;
2740
+
2741
+ 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 };
2742
+ 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 };
1817
2743
  //# sourceMappingURL=index.d.ts.map