@eric-emg/symphiq-components 1.3.62 → 1.3.64

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.
@@ -137,6 +137,9 @@ class ModalService {
137
137
  }
138
138
  });
139
139
  }
140
+ getCurrentState() {
141
+ return this.modalState.value;
142
+ }
140
143
  /**
141
144
  * Checks if the current modal context is from Profile Analysis Dashboard
142
145
  * by looking at the current modal state and navigation stack
@@ -1013,7 +1016,7 @@ class ModalService {
1013
1016
  navigationStack: newStack
1014
1017
  });
1015
1018
  }
1016
- openUnifiedGoalModal(goal, allMetrics, allCharts, loadedSourceAnalysisIds, viewMode, loadingSourceAnalysisId) {
1019
+ openUnifiedGoalModal(goal, allMetrics, allCharts, loadedSourceAnalysisIds, viewMode, loadingSourceAnalysisId, previousState) {
1017
1020
  const data = {
1018
1021
  goal,
1019
1022
  allMetrics,
@@ -1026,9 +1029,9 @@ class ModalService {
1026
1029
  type: 'unified-goal-detail',
1027
1030
  data,
1028
1031
  charts: allCharts,
1029
- previousState: null,
1030
- navigationStack: [],
1031
- openedFromMainBody: true
1032
+ previousState: previousState ?? null,
1033
+ navigationStack: previousState ? [previousState] : [],
1034
+ openedFromMainBody: !previousState
1032
1035
  });
1033
1036
  }
1034
1037
  navigateToUnifiedGoalObjectives(goal, allMetrics, allCharts, viewMode) {
@@ -25731,6 +25734,13 @@ class ConfidenceLevelCardComponent {
25731
25734
  qualitativeStatus: 'Complete Profile',
25732
25735
  quantitativeStatus: 'Full Analytics',
25733
25736
  description: 'Journey complete! Symphiq has all the context needed to deliver highly accurate, personalized recommendations. As you execute and your business evolves, keep your profiles updated for continued precision.'
25737
+ },
25738
+ 'unified-analysis': {
25739
+ grade: 'A+',
25740
+ percentage: 100,
25741
+ qualitativeStatus: 'Shop + Focus Areas + Metrics',
25742
+ quantitativeStatus: 'Full Synthesis',
25743
+ description: 'Maximum synthesis achieved! Symphiq has combined insights from all your source analyses—Shop, Focus Areas, and Metrics—into unified strategic goals. These recommendations represent the most comprehensive, cross-domain insights available for your business.'
25734
25744
  }
25735
25745
  };
25736
25746
  return dataMap[stepId] || dataMap['business-analysis'];
@@ -25755,7 +25765,7 @@ class ConfidenceLevelCardComponent {
25755
25765
  this.backgroundOverlayClasses = computed(() => {
25756
25766
  const grade = this.confidenceData().grade;
25757
25767
  const isDark = !this.isLightMode();
25758
- if (grade === 'A') {
25768
+ if (grade.startsWith('A')) {
25759
25769
  return isDark
25760
25770
  ? 'bg-gradient-to-br from-emerald-500/30 via-teal-500/20 to-emerald-500/30'
25761
25771
  : 'bg-gradient-to-br from-emerald-400/20 via-teal-400/10 to-emerald-400/20';
@@ -25790,7 +25800,7 @@ class ConfidenceLevelCardComponent {
25790
25800
  }, ...(ngDevMode ? [{ debugName: "gradeBadgeContainerClasses" }] : []));
25791
25801
  this.glowEffectClasses = computed(() => {
25792
25802
  const grade = this.confidenceData().grade;
25793
- if (grade === 'A') {
25803
+ if (grade.startsWith('A')) {
25794
25804
  return 'bg-emerald-500';
25795
25805
  }
25796
25806
  else if (grade.startsWith('B')) {
@@ -25804,7 +25814,7 @@ class ConfidenceLevelCardComponent {
25804
25814
  this.gradeBadgeClasses = computed(() => {
25805
25815
  const grade = this.confidenceData().grade;
25806
25816
  const isDark = !this.isLightMode();
25807
- if (grade === 'A') {
25817
+ if (grade.startsWith('A')) {
25808
25818
  return isDark
25809
25819
  ? '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)]'
25810
25820
  : '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)]';
@@ -25826,7 +25836,7 @@ class ConfidenceLevelCardComponent {
25826
25836
  this.gradeLabelClasses = computed(() => {
25827
25837
  const grade = this.confidenceData().grade;
25828
25838
  const isDark = !this.isLightMode();
25829
- if (grade === 'A') {
25839
+ if (grade.startsWith('A')) {
25830
25840
  return isDark ? 'text-emerald-300' : 'text-emerald-700';
25831
25841
  }
25832
25842
  else if (grade.startsWith('B')) {
@@ -25840,7 +25850,7 @@ class ConfidenceLevelCardComponent {
25840
25850
  this.gradeValueClasses = computed(() => {
25841
25851
  const grade = this.confidenceData().grade;
25842
25852
  const isDark = !this.isLightMode();
25843
- if (grade === 'A') {
25853
+ if (grade.startsWith('A')) {
25844
25854
  return isDark
25845
25855
  ? 'bg-gradient-to-b from-emerald-300 to-emerald-500 bg-clip-text text-transparent'
25846
25856
  : 'bg-gradient-to-b from-emerald-600 to-emerald-800 bg-clip-text text-transparent';
@@ -25870,7 +25880,7 @@ class ConfidenceLevelCardComponent {
25870
25880
  this.progressValueClasses = computed(() => {
25871
25881
  const grade = this.confidenceData().grade;
25872
25882
  const isDark = !this.isLightMode();
25873
- if (grade === 'A') {
25883
+ if (grade.startsWith('A')) {
25874
25884
  return isDark ? 'text-emerald-400' : 'text-emerald-600';
25875
25885
  }
25876
25886
  else if (grade.startsWith('B')) {
@@ -25890,7 +25900,7 @@ class ConfidenceLevelCardComponent {
25890
25900
  this.progressBarClasses = computed(() => {
25891
25901
  const grade = this.confidenceData().grade;
25892
25902
  const baseClasses = 'rounded-full overflow-hidden';
25893
- if (grade === 'A') {
25903
+ if (grade.startsWith('A')) {
25894
25904
  return `${baseClasses} bg-gradient-to-r from-emerald-500 via-teal-500 to-emerald-600`;
25895
25905
  }
25896
25906
  else if (grade.startsWith('B')) {
@@ -25906,7 +25916,7 @@ class ConfidenceLevelCardComponent {
25906
25916
  }, ...(ngDevMode ? [{ debugName: "shimmerClasses" }] : []));
25907
25917
  this.progressGlowClasses = computed(() => {
25908
25918
  const grade = this.confidenceData().grade;
25909
- if (grade === 'A') {
25919
+ if (grade.startsWith('A')) {
25910
25920
  return 'bg-gradient-to-r from-emerald-500 to-teal-500';
25911
25921
  }
25912
25922
  else if (grade.startsWith('B')) {
@@ -25977,7 +25987,7 @@ class ConfidenceLevelCardComponent {
25977
25987
  this.currentStepBadgeClasses = computed(() => {
25978
25988
  const grade = this.confidenceData().currentStepGrade;
25979
25989
  const isDark = !this.isLightMode();
25980
- if (grade === 'A') {
25990
+ if (grade?.startsWith('A')) {
25981
25991
  return isDark
25982
25992
  ? 'bg-emerald-500/20 text-emerald-400'
25983
25993
  : 'bg-emerald-100 text-emerald-700';
@@ -26005,7 +26015,7 @@ class ConfidenceLevelCardComponent {
26005
26015
  this.nextDashboardBadgeClasses = computed(() => {
26006
26016
  const grade = this.confidenceData().nextDashboardGrade;
26007
26017
  const isDark = !this.isLightMode();
26008
- if (grade === 'A') {
26018
+ if (grade?.startsWith('A')) {
26009
26019
  return isDark
26010
26020
  ? 'bg-emerald-500/10 text-emerald-500'
26011
26021
  : 'bg-emerald-50 text-emerald-600';
@@ -103101,32 +103111,32 @@ class SynthesisConfidenceSectionComponent {
103101
103111
  const _forTrack0$8 = ($index, $item) => $item.analysisId;
103102
103112
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
103103
103113
  i0.ɵɵelementStart(0, "div", 8);
103104
- i0.ɵɵelement(1, "div", 16);
103114
+ i0.ɵɵelement(1, "div", 19);
103105
103115
  i0.ɵɵelementEnd();
103106
103116
  } }
103107
103117
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
103108
103118
  i0.ɵɵelementStart(0, "div", 9);
103109
103119
  i0.ɵɵnamespaceSVG();
103110
- i0.ɵɵelementStart(1, "svg", 17);
103111
- i0.ɵɵelement(2, "path", 18);
103120
+ i0.ɵɵelementStart(1, "svg", 20);
103121
+ i0.ɵɵelement(2, "path", 21);
103112
103122
  i0.ɵɵelementEnd()();
103113
103123
  } }
103114
103124
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Case_5_Template(rf, ctx) { if (rf & 1) {
103115
103125
  i0.ɵɵnamespaceSVG();
103116
103126
  i0.ɵɵelementStart(0, "svg", 2);
103117
- i0.ɵɵelement(1, "path", 19);
103127
+ i0.ɵɵelement(1, "path", 22);
103118
103128
  i0.ɵɵelementEnd();
103119
103129
  } }
103120
103130
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Case_6_Template(rf, ctx) { if (rf & 1) {
103121
103131
  i0.ɵɵnamespaceSVG();
103122
103132
  i0.ɵɵelementStart(0, "svg", 2);
103123
- i0.ɵɵelement(1, "path", 20);
103133
+ i0.ɵɵelement(1, "path", 23);
103124
103134
  i0.ɵɵelementEnd();
103125
103135
  } }
103126
103136
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Case_7_Template(rf, ctx) { if (rf & 1) {
103127
103137
  i0.ɵɵnamespaceSVG();
103128
103138
  i0.ɵɵelementStart(0, "svg", 2);
103129
- i0.ɵɵelement(1, "path", 21);
103139
+ i0.ɵɵelement(1, "path", 24);
103130
103140
  i0.ɵɵelementEnd();
103131
103141
  } }
103132
103142
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
@@ -103153,6 +103163,11 @@ function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template(rf, ct
103153
103163
  i0.ɵɵelementEnd();
103154
103164
  i0.ɵɵelementStart(14, "div", 15);
103155
103165
  i0.ɵɵtext(15);
103166
+ i0.ɵɵelementEnd()();
103167
+ i0.ɵɵelementStart(16, "div", 16);
103168
+ i0.ɵɵnamespaceSVG();
103169
+ i0.ɵɵelementStart(17, "svg", 17);
103170
+ i0.ɵɵelement(18, "path", 18);
103156
103171
  i0.ɵɵelementEnd()()()();
103157
103172
  } if (rf & 2) {
103158
103173
  let tmp_15_0;
@@ -103181,6 +103196,8 @@ function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template(rf, ct
103181
103196
  i0.ɵɵproperty("ngClass", ctx_r2.sourceWeightClasses());
103182
103197
  i0.ɵɵadvance();
103183
103198
  i0.ɵɵtextInterpolate1(" ", ((source_r2.contributionWeight ?? 0) * 100).toFixed(0), "% contribution ");
103199
+ i0.ɵɵadvance();
103200
+ i0.ɵɵproperty("ngClass", ctx_r2.chevronClasses());
103184
103201
  } }
103185
103202
  function SourceAnalysisTraceabilityComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
103186
103203
  i0.ɵɵelementStart(0, "div", 0)(1, "h4", 1);
@@ -103193,7 +103210,7 @@ function SourceAnalysisTraceabilityComponent_Conditional_0_Template(rf, ctx) { i
103193
103210
  i0.ɵɵnamespaceHTML();
103194
103211
  i0.ɵɵelement(5, "symphiq-synthesis-confidence-section", 4);
103195
103212
  i0.ɵɵelementStart(6, "div", 5);
103196
- i0.ɵɵrepeaterCreate(7, SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template, 16, 12, "button", 6, _forTrack0$8);
103213
+ i0.ɵɵrepeaterCreate(7, SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template, 19, 13, "button", 6, _forTrack0$8);
103197
103214
  i0.ɵɵelementEnd()();
103198
103215
  } if (rf & 2) {
103199
103216
  let tmp_3_0;
@@ -103259,6 +103276,7 @@ class SourceAnalysisTraceabilityComponent {
103259
103276
  this.sourceTypeClasses = computed(() => this.isLightMode() ? 'text-slate-500' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "sourceTypeClasses" }] : []));
103260
103277
  this.sourceTitleClasses = computed(() => this.isLightMode() ? 'text-slate-900' : 'text-white', ...(ngDevMode ? [{ debugName: "sourceTitleClasses" }] : []));
103261
103278
  this.sourceWeightClasses = computed(() => this.isLightMode() ? 'text-slate-500' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "sourceWeightClasses" }] : []));
103279
+ this.chevronClasses = computed(() => this.isLightMode() ? 'text-slate-400' : 'text-slate-500', ...(ngDevMode ? [{ debugName: "chevronClasses" }] : []));
103262
103280
  }
103263
103281
  onSourceAnalysisClick(source) {
103264
103282
  this.sourceAnalysisClick.emit(source);
@@ -103272,7 +103290,7 @@ class SourceAnalysisTraceabilityComponent {
103272
103290
  }
103273
103291
  }
103274
103292
  static { this.ɵfac = function SourceAnalysisTraceabilityComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SourceAnalysisTraceabilityComponent)(); }; }
103275
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceAnalysisTraceabilityComponent, selectors: [["symphiq-source-analysis-traceability"]], inputs: { sourceAnalyses: [1, "sourceAnalyses"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], goal: [1, "goal"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick" }, decls: 1, vars: 1, consts: [[1, "p-5", "rounded-xl", "flex", "flex-col", "gap-4", 3, "ngClass"], [1, "text-sm", "font-semibold", "flex", "items-center", "gap-2", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"], [3, "score", "explanation", "viewMode"], [1, "grid", "grid-cols-1", "gap-3"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "ngClass"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "click", "ngClass"], [1, "absolute", "inset-0", "bg-black/10", "rounded-lg", "flex", "items-center", "justify-center"], [1, "absolute", "top-2", "right-2"], [1, "flex", "items-start", "gap-3"], [1, "w-8", "h-8", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-medium", "uppercase", "mb-0.5", 3, "ngClass"], [1, "text-sm", "font-medium", "truncate", 3, "ngClass"], [1, "text-xs", "mt-1", 3, "ngClass"], [1, "w-5", "h-5", "border-2", "border-current", "border-t-transparent", "rounded-full", "animate-spin"], ["fill", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "text-green-500"], ["d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"]], template: function SourceAnalysisTraceabilityComponent_Template(rf, ctx) { if (rf & 1) {
103293
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceAnalysisTraceabilityComponent, selectors: [["symphiq-source-analysis-traceability"]], inputs: { sourceAnalyses: [1, "sourceAnalyses"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], goal: [1, "goal"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick" }, decls: 1, vars: 1, consts: [[1, "p-5", "rounded-xl", "flex", "flex-col", "gap-4", 3, "ngClass"], [1, "text-sm", "font-semibold", "flex", "items-center", "gap-2", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"], [3, "score", "explanation", "viewMode"], [1, "grid", "grid-cols-1", "gap-3"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "ngClass"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "click", "ngClass"], [1, "absolute", "inset-0", "bg-black/10", "rounded-lg", "flex", "items-center", "justify-center"], [1, "absolute", "top-2", "right-2"], [1, "flex", "items-center", "gap-3"], [1, "w-8", "h-8", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-medium", "uppercase", "mb-0.5", 3, "ngClass"], [1, "text-sm", "font-medium", "truncate", 3, "ngClass"], [1, "text-xs", "mt-1", 3, "ngClass"], [1, "flex-shrink-0", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "w-5", "h-5", "border-2", "border-current", "border-t-transparent", "rounded-full", "animate-spin"], ["fill", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "text-green-500"], ["d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"]], template: function SourceAnalysisTraceabilityComponent_Template(rf, ctx) { if (rf & 1) {
103276
103294
  i0.ɵɵconditionalCreate(0, SourceAnalysisTraceabilityComponent_Conditional_0_Template, 9, 6, "div", 0);
103277
103295
  } if (rf & 2) {
103278
103296
  let tmp_0_0;
@@ -103320,7 +103338,7 @@ class SourceAnalysisTraceabilityComponent {
103320
103338
  </svg>
103321
103339
  </div>
103322
103340
  }
103323
- <div class="flex items-start gap-3">
103341
+ <div class="flex items-center gap-3">
103324
103342
  <div [ngClass]="sourceIconClasses()(source)" class="w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0">
103325
103343
  @switch (source.analysisType) {
103326
103344
  @case (ProfileAnalysisTypeEnum.SHOP) {
@@ -103354,6 +103372,11 @@ class SourceAnalysisTraceabilityComponent {
103354
103372
  {{ ((source.contributionWeight ?? 0) * 100).toFixed(0) }}% contribution
103355
103373
  </div>
103356
103374
  </div>
103375
+ <div [ngClass]="chevronClasses()" class="flex-shrink-0">
103376
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
103377
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
103378
+ </svg>
103379
+ </div>
103357
103380
  </div>
103358
103381
  </button>
103359
103382
  }
@@ -103363,11 +103386,11 @@ class SourceAnalysisTraceabilityComponent {
103363
103386
  `
103364
103387
  }]
103365
103388
  }], null, { sourceAnalyses: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceAnalyses", required: false }] }], loadedSourceAnalysisIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadedSourceAnalysisIds", required: false }] }], loadingSourceAnalysisId: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingSourceAnalysisId", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], goal: [{ type: i0.Input, args: [{ isSignal: true, alias: "goal", required: true }] }], sourceAnalysisClick: [{ type: i0.Output, args: ["sourceAnalysisClick"] }] }); })();
103366
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SourceAnalysisTraceabilityComponent, { className: "SourceAnalysisTraceabilityComponent", filePath: "lib/components/shared/source-analysis-traceability.component.ts", lineNumber: 100 }); })();
103389
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SourceAnalysisTraceabilityComponent, { className: "SourceAnalysisTraceabilityComponent", filePath: "lib/components/shared/source-analysis-traceability.component.ts", lineNumber: 105 }); })();
103367
103390
 
103368
103391
  function UnifiedGoalDetailModalContentComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
103369
103392
  i0.ɵɵelementStart(0, "div", 3);
103370
- i0.ɵɵelement(1, "symphiq-thematic-category-badge", 12);
103393
+ i0.ɵɵelement(1, "symphiq-thematic-category-badge", 11);
103371
103394
  i0.ɵɵelementEnd();
103372
103395
  } if (rf & 2) {
103373
103396
  const ctx_r0 = i0.ɵɵnextContext();
@@ -103386,7 +103409,7 @@ function UnifiedGoalDetailModalContentComponent_Conditional_4_Template(rf, ctx)
103386
103409
  } }
103387
103410
  function UnifiedGoalDetailModalContentComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
103388
103411
  i0.ɵɵelementStart(0, "div", 5);
103389
- i0.ɵɵelement(1, "symphiq-napkin-visual-placeholder", 13);
103412
+ i0.ɵɵelement(1, "symphiq-napkin-visual-placeholder", 12);
103390
103413
  i0.ɵɵelementEnd();
103391
103414
  } if (rf & 2) {
103392
103415
  const ctx_r0 = i0.ɵɵnextContext();
@@ -103395,16 +103418,17 @@ function UnifiedGoalDetailModalContentComponent_Conditional_5_Template(rf, ctx)
103395
103418
  } }
103396
103419
  function UnifiedGoalDetailModalContentComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
103397
103420
  const _r2 = i0.ɵɵgetCurrentView();
103398
- i0.ɵɵelementStart(0, "symphiq-show-objectives-button", 14);
103399
- i0.ɵɵlistener("buttonClick", function UnifiedGoalDetailModalContentComponent_Conditional_6_Template_symphiq_show_objectives_button_buttonClick_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.showObjectives.emit()); });
103400
- i0.ɵɵelementEnd();
103421
+ i0.ɵɵelementStart(0, "div", 5)(1, "symphiq-show-objectives-button", 13);
103422
+ i0.ɵɵlistener("buttonClick", function UnifiedGoalDetailModalContentComponent_Conditional_6_Template_symphiq_show_objectives_button_buttonClick_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.showObjectives.emit()); });
103423
+ i0.ɵɵelementEnd()();
103401
103424
  } if (rf & 2) {
103402
103425
  const ctx_r0 = i0.ɵɵnextContext();
103426
+ i0.ɵɵadvance();
103403
103427
  i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("subLabel", "View " + ctx_r0.goal().objectives.length + " objectives");
103404
103428
  } }
103405
103429
  function UnifiedGoalDetailModalContentComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
103406
103430
  const _r3 = i0.ɵɵgetCurrentView();
103407
- i0.ɵɵelementStart(0, "symphiq-related-content-button", 15);
103431
+ i0.ɵɵelementStart(0, "symphiq-related-content-button", 14);
103408
103432
  i0.ɵɵlistener("buttonClicked", function UnifiedGoalDetailModalContentComponent_Conditional_9_Template_symphiq_related_content_button_buttonClicked_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onContributingMetricsClick()); });
103409
103433
  i0.ɵɵelementEnd();
103410
103434
  } if (rf & 2) {
@@ -103412,7 +103436,7 @@ function UnifiedGoalDetailModalContentComponent_Conditional_9_Template(rf, ctx)
103412
103436
  i0.ɵɵproperty("count", ctx_r0.contributingMetricsCount())("svgPath", ctx_r0.metricsIconPath)("viewMode", ctx_r0.viewMode());
103413
103437
  } }
103414
103438
  function UnifiedGoalDetailModalContentComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
103415
- i0.ɵɵelement(0, "symphiq-related-content-button", 10);
103439
+ i0.ɵɵelement(0, "symphiq-related-content-button", 9);
103416
103440
  } if (rf & 2) {
103417
103441
  const ctx_r0 = i0.ɵɵnextContext();
103418
103442
  i0.ɵɵproperty("count", ctx_r0.contributingFocusAreasCount())("svgPath", ctx_r0.focusAreaIconPath)("viewMode", ctx_r0.viewMode())("showChevron", false)("tooltipContent", ctx_r0.focusAreasTooltipContent());
@@ -103473,18 +103497,18 @@ class UnifiedGoalDetailModalContentComponent {
103473
103497
  this.contributingMetricsClick.emit();
103474
103498
  }
103475
103499
  static { this.ɵfac = function UnifiedGoalDetailModalContentComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedGoalDetailModalContentComponent)(); }; }
103476
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalDetailModalContentComponent, selectors: [["symphiq-unified-goal-detail-modal-content"]], inputs: { goal: [1, "goal"], allMetrics: [1, "allMetrics"], allCharts: [1, "allCharts"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], currentModalState: [1, "currentModalState"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick", metricClick: "metricClick", contributingMetricsClick: "contributingMetricsClick", showObjectives: "showObjectives", close: "close" }, decls: 12, vars: 14, consts: [[1, "flex", "flex-col", "gap-6"], [1, "flex", "flex-col", "lg:flex-row", "gap-6"], [1, "flex-1"], [1, "mb-3"], [1, "text-base", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "mt-6"], [1, "mt-6", 3, "viewMode", "subLabel"], [1, "lg:w-100", "flex-shrink-0", "flex", "flex-col", "gap-4"], ["layout", "vertical", 3, "expectedImpact", "viewMode", "showTitleIcon"], ["label", "CONTRIBUTING METRIC", "labelPlural", "CONTRIBUTING METRICS", 3, "count", "svgPath", "viewMode"], ["label", "CONTRIBUTING FOCUS AREA", "labelPlural", "CONTRIBUTING FOCUS AREAS", 3, "count", "svgPath", "viewMode", "showChevron", "tooltipContent"], [3, "sourceAnalysisClick", "sourceAnalyses", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "goal"], [3, "category", "viewMode"], [3, "visual", "viewMode"], [1, "mt-6", 3, "buttonClick", "viewMode", "subLabel"], ["label", "CONTRIBUTING METRIC", "labelPlural", "CONTRIBUTING METRICS", 3, "buttonClicked", "count", "svgPath", "viewMode"]], template: function UnifiedGoalDetailModalContentComponent_Template(rf, ctx) { if (rf & 1) {
103500
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalDetailModalContentComponent, selectors: [["symphiq-unified-goal-detail-modal-content"]], inputs: { goal: [1, "goal"], allMetrics: [1, "allMetrics"], allCharts: [1, "allCharts"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], currentModalState: [1, "currentModalState"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick", metricClick: "metricClick", contributingMetricsClick: "contributingMetricsClick", showObjectives: "showObjectives", close: "close" }, decls: 12, vars: 14, consts: [[1, "flex", "flex-col", "gap-6"], [1, "flex", "flex-col", "lg:flex-row", "gap-6"], [1, "flex-1"], [1, "mb-3"], [1, "text-base", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "mt-6"], [1, "lg:w-100", "flex-shrink-0", "flex", "flex-col", "gap-4"], ["layout", "vertical", 3, "expectedImpact", "viewMode", "showTitleIcon"], ["label", "CONTRIBUTING METRIC", "labelPlural", "CONTRIBUTING METRICS", 3, "count", "svgPath", "viewMode"], ["label", "CONTRIBUTING FOCUS AREA", "labelPlural", "CONTRIBUTING FOCUS AREAS", 3, "count", "svgPath", "viewMode", "showChevron", "tooltipContent"], [3, "sourceAnalysisClick", "sourceAnalyses", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "goal"], [3, "category", "viewMode"], [3, "visual", "viewMode"], [3, "buttonClick", "viewMode", "subLabel"], ["label", "CONTRIBUTING METRIC", "labelPlural", "CONTRIBUTING METRICS", 3, "buttonClicked", "count", "svgPath", "viewMode"]], template: function UnifiedGoalDetailModalContentComponent_Template(rf, ctx) { if (rf & 1) {
103477
103501
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
103478
103502
  i0.ɵɵconditionalCreate(3, UnifiedGoalDetailModalContentComponent_Conditional_3_Template, 2, 2, "div", 3);
103479
103503
  i0.ɵɵconditionalCreate(4, UnifiedGoalDetailModalContentComponent_Conditional_4_Template, 2, 2, "p", 4);
103480
103504
  i0.ɵɵconditionalCreate(5, UnifiedGoalDetailModalContentComponent_Conditional_5_Template, 2, 2, "div", 5);
103481
- i0.ɵɵconditionalCreate(6, UnifiedGoalDetailModalContentComponent_Conditional_6_Template, 1, 2, "symphiq-show-objectives-button", 6);
103505
+ i0.ɵɵconditionalCreate(6, UnifiedGoalDetailModalContentComponent_Conditional_6_Template, 2, 2, "div", 5);
103482
103506
  i0.ɵɵelementEnd();
103483
- i0.ɵɵelementStart(7, "div", 7);
103484
- i0.ɵɵelement(8, "symphiq-expected-impact-section", 8);
103485
- i0.ɵɵconditionalCreate(9, UnifiedGoalDetailModalContentComponent_Conditional_9_Template, 1, 3, "symphiq-related-content-button", 9);
103486
- i0.ɵɵconditionalCreate(10, UnifiedGoalDetailModalContentComponent_Conditional_10_Template, 1, 5, "symphiq-related-content-button", 10);
103487
- i0.ɵɵelementStart(11, "symphiq-source-analysis-traceability", 11);
103507
+ i0.ɵɵelementStart(7, "div", 6);
103508
+ i0.ɵɵelement(8, "symphiq-expected-impact-section", 7);
103509
+ i0.ɵɵconditionalCreate(9, UnifiedGoalDetailModalContentComponent_Conditional_9_Template, 1, 3, "symphiq-related-content-button", 8);
103510
+ i0.ɵɵconditionalCreate(10, UnifiedGoalDetailModalContentComponent_Conditional_10_Template, 1, 5, "symphiq-related-content-button", 9);
103511
+ i0.ɵɵelementStart(11, "symphiq-source-analysis-traceability", 10);
103488
103512
  i0.ɵɵlistener("sourceAnalysisClick", function UnifiedGoalDetailModalContentComponent_Template_symphiq_source_analysis_traceability_sourceAnalysisClick_11_listener($event) { return ctx.onSourceAnalysisClick($event); });
103489
103513
  i0.ɵɵelementEnd()()()();
103490
103514
  } if (rf & 2) {
@@ -103540,15 +103564,16 @@ class UnifiedGoalDetailModalContentComponent {
103540
103564
  />
103541
103565
  </div>
103542
103566
  }
103543
-
103567
+
103544
103568
  <!-- Objectives Button -->
103545
103569
  @if (goal().objectives && goal().objectives!.length > 0) {
103546
- <symphiq-show-objectives-button
103547
- class="mt-6"
103548
- [viewMode]="viewMode()"
103549
- [subLabel]="'View ' + goal().objectives!.length + ' objectives'"
103550
- (buttonClick)="showObjectives.emit()"
103551
- />
103570
+ <div class="mt-6">
103571
+ <symphiq-show-objectives-button
103572
+ [viewMode]="viewMode()"
103573
+ [subLabel]="'View ' + goal().objectives!.length + ' objectives'"
103574
+ (buttonClick)="showObjectives.emit()"
103575
+ />
103576
+ </div>
103552
103577
  }
103553
103578
  </div>
103554
103579
  <div class="lg:w-100 flex-shrink-0 flex flex-col gap-4">
@@ -103590,12 +103615,12 @@ class UnifiedGoalDetailModalContentComponent {
103590
103615
  />
103591
103616
  </div>
103592
103617
  </div>
103593
-
103618
+
103594
103619
  </div>
103595
103620
  `
103596
103621
  }]
103597
103622
  }], null, { goal: [{ type: i0.Input, args: [{ isSignal: true, alias: "goal", required: true }] }], allMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "allMetrics", required: false }] }], allCharts: [{ type: i0.Input, args: [{ isSignal: true, alias: "allCharts", required: false }] }], loadedSourceAnalysisIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadedSourceAnalysisIds", required: false }] }], loadingSourceAnalysisId: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingSourceAnalysisId", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], currentModalState: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentModalState", required: false }] }], sourceAnalysisClick: [{ type: i0.Output, args: ["sourceAnalysisClick"] }], metricClick: [{ type: i0.Output, args: ["metricClick"] }], contributingMetricsClick: [{ type: i0.Output, args: ["contributingMetricsClick"] }], showObjectives: [{ type: i0.Output, args: ["showObjectives"] }], close: [{ type: i0.Output, args: ["close"] }] }); })();
103598
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalDetailModalContentComponent, { className: "UnifiedGoalDetailModalContentComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-goal-detail-modal-content.component.ts", lineNumber: 99 }); })();
103623
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalDetailModalContentComponent, { className: "UnifiedGoalDetailModalContentComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-goal-detail-modal-content.component.ts", lineNumber: 100 }); })();
103599
103624
 
103600
103625
  const _forTrack0$7 = ($index, $item) => $item.metric;
103601
103626
  function UnifiedGoalRelatedMetricsModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
@@ -103827,22 +103852,22 @@ class PriorityActionsModalContentComponent {
103827
103852
  const priorityStr = String(priority).toUpperCase();
103828
103853
  if (priorityStr === 'CRITICAL') {
103829
103854
  return isLight
103830
- ? 'bg-white border-l-4 border-l-red-500 border border-slate-200 hover:border-slate-300 hover:shadow-md'
103831
- : 'bg-slate-800/50 border-l-4 border-l-red-500 border border-slate-700/50 hover:border-slate-600/50';
103855
+ ? 'bg-white border-l-4 border-l-red-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(239,68,68,0.4)]'
103856
+ : 'bg-slate-800/50 border-l-4 border-l-red-500 border border-slate-700/50 hover:shadow-[0_0_15px_rgba(239,68,68,0.5)]';
103832
103857
  }
103833
103858
  if (priorityStr === 'HIGH' || priorityStr === 'URGENT') {
103834
103859
  return isLight
103835
- ? 'bg-white border-l-4 border-l-orange-500 border border-slate-200 hover:border-slate-300 hover:shadow-md'
103836
- : 'bg-slate-800/50 border-l-4 border-l-orange-500 border border-slate-700/50 hover:border-slate-600/50';
103860
+ ? 'bg-white border-l-4 border-l-orange-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(249,115,22,0.4)]'
103861
+ : 'bg-slate-800/50 border-l-4 border-l-orange-500 border border-slate-700/50 hover:shadow-[0_0_15px_rgba(249,115,22,0.5)]';
103837
103862
  }
103838
103863
  if (priorityStr === 'MEDIUM') {
103839
103864
  return isLight
103840
- ? 'bg-white border-l-4 border-l-amber-500 border border-slate-200 hover:border-slate-300 hover:shadow-md'
103841
- : 'bg-slate-800/50 border-l-4 border-l-amber-500 border border-slate-700/50 hover:border-slate-600/50';
103865
+ ? 'bg-white border-l-4 border-l-amber-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(245,158,11,0.4)]'
103866
+ : 'bg-slate-800/50 border-l-4 border-l-amber-500 border border-slate-700/50 hover:shadow-[0_0_15px_rgba(245,158,11,0.5)]';
103842
103867
  }
103843
103868
  return isLight
103844
- ? 'bg-white border-l-4 border-l-blue-500 border border-slate-200 hover:border-slate-300 hover:shadow-md'
103845
- : 'bg-slate-800/50 border-l-4 border-l-blue-500 border border-slate-700/50 hover:border-slate-600/50';
103869
+ ? 'bg-white border-l-4 border-l-blue-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(59,130,246,0.4)]'
103870
+ : 'bg-slate-800/50 border-l-4 border-l-blue-500 border border-slate-700/50 hover:shadow-[0_0_15px_rgba(59,130,246,0.5)]';
103846
103871
  }
103847
103872
  impactBadgeClasses(impact) {
103848
103873
  const isLight = this.isLight();
@@ -104251,8 +104276,10 @@ function UnifiedDashboardModalComponent_Conditional_0_Template(rf, ctx) { if (rf
104251
104276
  class UnifiedDashboardModalComponent {
104252
104277
  constructor() {
104253
104278
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
104279
+ this.loadingSourceAnalysisId = input(...(ngDevMode ? [undefined, { debugName: "loadingSourceAnalysisId" }] : []));
104254
104280
  this.priorityActionGoalClick = output();
104255
104281
  this.priorityActionRecommendationClick = output();
104282
+ this.sourceAnalysisClickRequest = output();
104256
104283
  this.modalService = inject(ModalService);
104257
104284
  this.renderer = inject(Renderer2);
104258
104285
  this.document = inject(DOCUMENT);
@@ -104386,11 +104413,7 @@ class UnifiedDashboardModalComponent {
104386
104413
  return data.loadedSourceAnalysisIds.map(id => parseInt(id, 10)).filter(id => !isNaN(id));
104387
104414
  }, ...(ngDevMode ? [{ debugName: "loadedSourceAnalysisIdsAsNumbers" }] : []));
104388
104415
  this.loadingSourceAnalysisIdAsNumber = computed(() => {
104389
- const data = this.unifiedGoalData();
104390
- if (!data?.loadingSourceAnalysisId)
104391
- return undefined;
104392
- const num = parseInt(data.loadingSourceAnalysisId, 10);
104393
- return isNaN(num) ? undefined : num;
104416
+ return this.loadingSourceAnalysisId();
104394
104417
  }, ...(ngDevMode ? [{ debugName: "loadingSourceAnalysisIdAsNumber" }] : []));
104395
104418
  this.modalDepth = computed(() => {
104396
104419
  let depth = 0;
@@ -104527,7 +104550,7 @@ class UnifiedDashboardModalComponent {
104527
104550
  });
104528
104551
  }
104529
104552
  onSourceAnalysisClick(source) {
104530
- console.log('Source analysis clicked:', source);
104553
+ this.sourceAnalysisClickRequest.emit(source);
104531
104554
  }
104532
104555
  onMetricClick(metric) {
104533
104556
  const data = this.unifiedGoalData();
@@ -104662,7 +104685,7 @@ class UnifiedDashboardModalComponent {
104662
104685
  let _t;
104663
104686
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalContent = _t.first);
104664
104687
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalWrapper = _t.first);
104665
- } }, inputs: { viewMode: [1, "viewMode"] }, outputs: { priorityActionGoalClick: "priorityActionGoalClick", priorityActionRecommendationClick: "priorityActionRecommendationClick" }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto", 3, "z-index", "visibility"], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", "transition-opacity", "duration-200", 3, "click", "ngClass"], [1, "relative", "w-full", "max-w-6xl", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex", "items-start", "gap-3", "flex-1", "min-w-0"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "gap-1.5", "mb-2", "text-xs"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xl", "font-bold", "leading-tight", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "ml-4", "flex-shrink-0"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[80vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [3, "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "objectives", "goalTitle", "viewMode"], [3, "goal", "contributingMetrics", "viewMode"], [3, "objective", "viewMode"], [3, "strategy", "viewMode", "allMetrics", "allCharts", "allInsights", "goalTitle", "objectiveTitle", "currentModalState"], [3, "items", "viewMode", "selectedIndex"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 19l-7-7 7-7"], [1, "font-medium", 3, "ngClass"], ["type", "button", 1, "hover:underline", "cursor-pointer", "transition-colors", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "flex-shrink-0", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "sourceAnalysisClick", "metricClick", "contributingMetricsClick", "showObjectives", "close", "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "metricClick", "goal", "contributingMetrics", "viewMode"], [3, "goalClick", "recommendationClick", "items", "viewMode", "selectedIndex"]], template: function UnifiedDashboardModalComponent_Template(rf, ctx) { if (rf & 1) {
104688
+ } }, inputs: { viewMode: [1, "viewMode"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"] }, outputs: { priorityActionGoalClick: "priorityActionGoalClick", priorityActionRecommendationClick: "priorityActionRecommendationClick", sourceAnalysisClickRequest: "sourceAnalysisClickRequest" }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto", 3, "z-index", "visibility"], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", "transition-opacity", "duration-200", 3, "click", "ngClass"], [1, "relative", "w-full", "max-w-6xl", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex", "items-start", "gap-3", "flex-1", "min-w-0"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "gap-1.5", "mb-2", "text-xs"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xl", "font-bold", "leading-tight", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "ml-4", "flex-shrink-0"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[80vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [3, "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "objectives", "goalTitle", "viewMode"], [3, "goal", "contributingMetrics", "viewMode"], [3, "objective", "viewMode"], [3, "strategy", "viewMode", "allMetrics", "allCharts", "allInsights", "goalTitle", "objectiveTitle", "currentModalState"], [3, "items", "viewMode", "selectedIndex"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 19l-7-7 7-7"], [1, "font-medium", 3, "ngClass"], ["type", "button", 1, "hover:underline", "cursor-pointer", "transition-colors", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "flex-shrink-0", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "sourceAnalysisClick", "metricClick", "contributingMetricsClick", "showObjectives", "close", "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "metricClick", "goal", "contributingMetrics", "viewMode"], [3, "goalClick", "recommendationClick", "items", "viewMode", "selectedIndex"]], template: function UnifiedDashboardModalComponent_Template(rf, ctx) { if (rf & 1) {
104666
104689
  i0.ɵɵconditionalCreate(0, UnifiedDashboardModalComponent_Conditional_0_Template, 27, 32, "div", 2);
104667
104690
  } if (rf & 2) {
104668
104691
  i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
@@ -104885,21 +104908,240 @@ class UnifiedDashboardModalComponent {
104885
104908
  }
104886
104909
  `
104887
104910
  }]
104888
- }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], priorityActionGoalClick: [{ type: i0.Output, args: ["priorityActionGoalClick"] }], priorityActionRecommendationClick: [{ type: i0.Output, args: ["priorityActionRecommendationClick"] }], modalContent: [{
104911
+ }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], loadingSourceAnalysisId: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingSourceAnalysisId", required: false }] }], priorityActionGoalClick: [{ type: i0.Output, args: ["priorityActionGoalClick"] }], priorityActionRecommendationClick: [{ type: i0.Output, args: ["priorityActionRecommendationClick"] }], sourceAnalysisClickRequest: [{ type: i0.Output, args: ["sourceAnalysisClickRequest"] }], modalContent: [{
104889
104912
  type: ViewChild,
104890
104913
  args: ['modalContent']
104891
104914
  }], modalWrapper: [{
104892
104915
  type: ViewChild,
104893
104916
  args: ['modalWrapper']
104894
104917
  }] }); })();
104895
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedDashboardModalComponent, { className: "UnifiedDashboardModalComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-dashboard-modal.component.ts", lineNumber: 235 }); })();
104918
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedDashboardModalComponent, { className: "UnifiedDashboardModalComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-dashboard-modal.component.ts", lineNumber: 236 }); })();
104919
+
104920
+ function UnifiedWelcomeBannerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
104921
+ i0.ɵɵtext(0, " Your Unified Goals ");
104922
+ } }
104923
+ function UnifiedWelcomeBannerComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
104924
+ i0.ɵɵtext(0, " Welcome to Your Unified Analysis ");
104925
+ } }
104926
+ function UnifiedWelcomeBannerComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
104927
+ i0.ɵɵelementStart(0, "div", 12)(1, "div", 17);
104928
+ i0.ɵɵnamespaceSVG();
104929
+ i0.ɵɵelementStart(2, "svg", 18);
104930
+ i0.ɵɵelement(3, "path", 5);
104931
+ i0.ɵɵelementEnd()();
104932
+ i0.ɵɵnamespaceHTML();
104933
+ i0.ɵɵelementStart(4, "div", 6)(5, "p", 19);
104934
+ i0.ɵɵtext(6);
104935
+ i0.ɵɵelementEnd();
104936
+ i0.ɵɵelementStart(7, "p", 20);
104937
+ i0.ɵɵtext(8);
104938
+ i0.ɵɵelementEnd()()();
104939
+ } if (rf & 2) {
104940
+ const ctx_r0 = i0.ɵɵnextContext();
104941
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerClasses());
104942
+ i0.ɵɵadvance();
104943
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerIconClasses());
104944
+ i0.ɵɵadvance(4);
104945
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerTitleClasses());
104946
+ i0.ɵɵadvance();
104947
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.unifiedGoalsCount(), " Unified Goals Synthesized ");
104948
+ i0.ɵɵadvance();
104949
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerTextClasses());
104950
+ i0.ɵɵadvance();
104951
+ i0.ɵɵtextInterpolate2(" We've combined insights from ", ctx_r0.sourceAnalysesCount(), " source analyses into actionable strategic priorities for ", ctx_r0.businessName(), ". ");
104952
+ } }
104953
+ class UnifiedWelcomeBannerComponent {
104954
+ constructor() {
104955
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
104956
+ this.businessName = input('your business', ...(ngDevMode ? [{ debugName: "businessName" }] : []));
104957
+ this.isOnboarded = input(false, ...(ngDevMode ? [{ debugName: "isOnboarded" }] : []));
104958
+ this.analysisDate = input(...(ngDevMode ? [undefined, { debugName: "analysisDate" }] : []));
104959
+ this.isUnifiedAnalysisComplete = input(false, ...(ngDevMode ? [{ debugName: "isUnifiedAnalysisComplete" }] : []));
104960
+ this.sourceAnalysesCount = input(0, ...(ngDevMode ? [{ debugName: "sourceAnalysesCount" }] : []));
104961
+ this.unifiedGoalsCount = input(0, ...(ngDevMode ? [{ debugName: "unifiedGoalsCount" }] : []));
104962
+ this.whatYoullSeeBelowItems = [
104963
+ { title: 'Unified Goals', description: 'Strategic goals synthesized from all your source analyses with clear priorities and expected impact' },
104964
+ { title: 'Implementation Timeline', description: 'A phased roadmap showing when to tackle each goal for optimal results' },
104965
+ { title: 'Priority Matrix', description: 'Visual prioritization of goals based on effort required and potential impact' },
104966
+ { title: 'Next Steps', description: 'Actionable steps to begin implementing your highest-priority unified goals' }
104967
+ ];
104968
+ this.formattedAnalysisDate = computed(() => {
104969
+ const date = this.analysisDate();
104970
+ if (!date) {
104971
+ return null;
104972
+ }
104973
+ return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
104974
+ }, ...(ngDevMode ? [{ debugName: "formattedAnalysisDate" }] : []));
104975
+ this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
104976
+ this.containerClasses = computed(() => this.isDark()
104977
+ ? 'bg-slate-800/40 border-slate-700/50'
104978
+ : 'bg-white border-slate-200', ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
104979
+ this.contentClasses = computed(() => this.isDark()
104980
+ ? 'bg-gradient-to-br from-slate-800/60 via-slate-800/40 to-slate-800/60'
104981
+ : 'bg-gradient-to-br from-emerald-50/30 via-white to-cyan-50/30', ...(ngDevMode ? [{ debugName: "contentClasses" }] : []));
104982
+ this.iconContainerClasses = computed(() => this.isDark()
104983
+ ? 'bg-gradient-to-br from-emerald-500/20 to-cyan-500/20 text-emerald-400'
104984
+ : 'bg-gradient-to-br from-emerald-100 to-cyan-100 text-emerald-600', ...(ngDevMode ? [{ debugName: "iconContainerClasses" }] : []));
104985
+ this.titleClasses = computed(() => this.isDark()
104986
+ ? 'text-white'
104987
+ : 'bg-gradient-to-r from-emerald-600 to-cyan-600 bg-clip-text text-transparent', ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
104988
+ this.textClasses = computed(() => this.isDark() ? 'text-slate-300' : 'text-slate-700', ...(ngDevMode ? [{ debugName: "textClasses" }] : []));
104989
+ this.synthesisBannerClasses = computed(() => this.isDark()
104990
+ ? 'bg-gradient-to-r from-blue-900/40 to-indigo-900/40 border border-blue-700/50'
104991
+ : 'bg-gradient-to-r from-blue-50 to-indigo-50 border border-blue-200', ...(ngDevMode ? [{ debugName: "synthesisBannerClasses" }] : []));
104992
+ this.synthesisBannerIconClasses = computed(() => this.isDark()
104993
+ ? 'bg-blue-500/20 text-blue-400'
104994
+ : 'bg-blue-100 text-blue-600', ...(ngDevMode ? [{ debugName: "synthesisBannerIconClasses" }] : []));
104995
+ this.synthesisBannerTitleClasses = computed(() => this.isDark() ? 'text-white' : 'text-slate-900', ...(ngDevMode ? [{ debugName: "synthesisBannerTitleClasses" }] : []));
104996
+ this.synthesisBannerTextClasses = computed(() => this.isDark() ? 'text-slate-300' : 'text-slate-700', ...(ngDevMode ? [{ debugName: "synthesisBannerTextClasses" }] : []));
104997
+ }
104998
+ static { this.ɵfac = function UnifiedWelcomeBannerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedWelcomeBannerComponent)(); }; }
104999
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedWelcomeBannerComponent, selectors: [["symphiq-unified-welcome-banner"]], inputs: { viewMode: [1, "viewMode"], businessName: [1, "businessName"], isOnboarded: [1, "isOnboarded"], analysisDate: [1, "analysisDate"], isUnifiedAnalysisComplete: [1, "isUnifiedAnalysisComplete"], sourceAnalysesCount: [1, "sourceAnalysesCount"], unifiedGoalsCount: [1, "unifiedGoalsCount"] }, decls: 23, vars: 16, consts: [[1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-8", "py-8", 3, "ngClass"], [1, "flex", "items-start", "gap-6"], [1, "flex-shrink-0", "w-16", "h-16", "rounded-2xl", "flex", "items-center", "justify-center", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-8", "h-8"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex-1"], [1, "text-2xl", "sm:text-3xl", "font-bold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "lg:grid-cols-3", "gap-6", "mb-6"], [1, "lg:col-span-2", "space-y-3"], [1, "text-base", "leading-relaxed", 3, "ngClass"], [1, "font-semibold"], [1, "mt-4", "p-4", "rounded-xl", "flex", "items-start", "gap-4", 3, "ngClass"], [1, "lg:col-span-1"], ["currentStepId", "unified-analysis", 3, "viewMode", "isCurrentStepComplete"], [1, "mt-6", "block", 3, "viewMode", "items", "analysisDate"], ["title", "Maximize Your Unified Insights", "onboardedTitle", "Keep Your Unified Goals Current", "description", "To get the most comprehensive unified goals, ensure you've completed your Shop Analysis, Focus Area Analyses, and Metric Analyses. The more context Symphiq has about your business, the more precise and actionable your unified recommendations become.", "onboardedDescription", "As you complete more analyses or update existing ones, your Unified Goals will be refined to reflect your current business context. Regenerate your unified analysis periodically to ensure recommendations stay aligned with your evolving strategy and priorities.", 1, "mt-6", "block", 3, "viewMode", "isOnboarded"], [1, "flex-shrink-0", "p-2", "rounded-lg", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], [1, "font-semibold", "text-base", "mb-1", 3, "ngClass"], [1, "text-sm", 3, "ngClass"]], template: function UnifiedWelcomeBannerComponent_Template(rf, ctx) { if (rf & 1) {
105000
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
105001
+ i0.ɵɵnamespaceSVG();
105002
+ i0.ɵɵelementStart(4, "svg", 4);
105003
+ i0.ɵɵelement(5, "path", 5);
105004
+ i0.ɵɵelementEnd()();
105005
+ i0.ɵɵnamespaceHTML();
105006
+ i0.ɵɵelementStart(6, "div", 6)(7, "h2", 7);
105007
+ i0.ɵɵconditionalCreate(8, UnifiedWelcomeBannerComponent_Conditional_8_Template, 1, 0)(9, UnifiedWelcomeBannerComponent_Conditional_9_Template, 1, 0);
105008
+ i0.ɵɵelementEnd();
105009
+ i0.ɵɵelementStart(10, "div", 8)(11, "div", 9)(12, "p", 10);
105010
+ i0.ɵɵtext(13);
105011
+ i0.ɵɵelementEnd();
105012
+ i0.ɵɵelementStart(14, "p", 10)(15, "strong", 11);
105013
+ i0.ɵɵtext(16, "Why this matters:");
105014
+ i0.ɵɵelementEnd();
105015
+ i0.ɵɵtext(17, " Instead of managing separate recommendations from each analysis, the Unified Analysis consolidates them into actionable goals with clear priorities, timelines, and expected impact. This ensures you focus on what will drive the most value for your business. ");
105016
+ i0.ɵɵelementEnd();
105017
+ i0.ɵɵconditionalCreate(18, UnifiedWelcomeBannerComponent_Conditional_18_Template, 9, 7, "div", 12);
105018
+ i0.ɵɵelementEnd();
105019
+ i0.ɵɵelementStart(19, "div", 13);
105020
+ i0.ɵɵelement(20, "symphiq-confidence-level-card", 14);
105021
+ i0.ɵɵelementEnd()();
105022
+ i0.ɵɵelement(21, "symphiq-what-youll-see-below", 15)(22, "symphiq-continue-your-journey", 16);
105023
+ i0.ɵɵelementEnd()()()();
105024
+ } if (rf & 2) {
105025
+ i0.ɵɵproperty("ngClass", ctx.containerClasses());
105026
+ i0.ɵɵadvance();
105027
+ i0.ɵɵproperty("ngClass", ctx.contentClasses());
105028
+ i0.ɵɵadvance(2);
105029
+ i0.ɵɵproperty("ngClass", ctx.iconContainerClasses());
105030
+ i0.ɵɵadvance(4);
105031
+ i0.ɵɵproperty("ngClass", ctx.titleClasses());
105032
+ i0.ɵɵadvance();
105033
+ i0.ɵɵconditional(ctx.isOnboarded() ? 8 : 9);
105034
+ i0.ɵɵadvance(4);
105035
+ i0.ɵɵproperty("ngClass", ctx.textClasses());
105036
+ i0.ɵɵadvance();
105037
+ i0.ɵɵtextInterpolate1(" The Unified Analysis synthesizes insights from all your source analyses\u2014Shop Analysis, Focus Area Analyses, and Metric Analyses\u2014into cohesive strategic goals for ", ctx.businessName(), ". These unified goals represent the highest-priority opportunities identified across your entire business context. ");
105038
+ i0.ɵɵadvance();
105039
+ i0.ɵɵproperty("ngClass", ctx.textClasses());
105040
+ i0.ɵɵadvance(4);
105041
+ i0.ɵɵconditional(ctx.unifiedGoalsCount() > 0 ? 18 : -1);
105042
+ i0.ɵɵadvance(2);
105043
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("isCurrentStepComplete", ctx.isUnifiedAnalysisComplete());
105044
+ i0.ɵɵadvance();
105045
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("items", ctx.whatYoullSeeBelowItems)("analysisDate", ctx.formattedAnalysisDate());
105046
+ i0.ɵɵadvance();
105047
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("isOnboarded", ctx.isOnboarded());
105048
+ } }, dependencies: [CommonModule, i1$1.NgClass, ConfidenceLevelCardComponent, ContinueYourJourneyComponent, WhatYoullSeeBelowComponent], encapsulation: 2, changeDetection: 0 }); }
105049
+ }
105050
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnifiedWelcomeBannerComponent, [{
105051
+ type: Component,
105052
+ args: [{
105053
+ selector: 'symphiq-unified-welcome-banner',
105054
+ standalone: true,
105055
+ imports: [CommonModule, ConfidenceLevelCardComponent, ContinueYourJourneyComponent, WhatYoullSeeBelowComponent],
105056
+ changeDetection: ChangeDetectionStrategy.OnPush,
105057
+ template: `
105058
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
105059
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
105060
+ <div class="flex items-start gap-6">
105061
+ <div [ngClass]="iconContainerClasses()" class="flex-shrink-0 w-16 h-16 rounded-2xl flex items-center justify-center">
105062
+ <svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
105063
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
105064
+ </svg>
105065
+ </div>
105066
+
105067
+ <div class="flex-1">
105068
+ <h2 [ngClass]="titleClasses()" class="text-2xl sm:text-3xl font-bold mb-3">
105069
+ @if (isOnboarded()) {
105070
+ Your Unified Goals
105071
+ } @else {
105072
+ Welcome to Your Unified Analysis
105073
+ }
105074
+ </h2>
105075
+
105076
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
105077
+ <div class="lg:col-span-2 space-y-3">
105078
+ <p [ngClass]="textClasses()" class="text-base leading-relaxed">
105079
+ The Unified Analysis synthesizes insights from all your source analyses—Shop Analysis, Focus Area Analyses, and Metric Analyses—into cohesive strategic goals for {{ businessName() }}. These unified goals represent the highest-priority opportunities identified across your entire business context.
105080
+ </p>
105081
+ <p [ngClass]="textClasses()" class="text-base leading-relaxed">
105082
+ <strong class="font-semibold">Why this matters:</strong> Instead of managing separate recommendations from each analysis, the Unified Analysis consolidates them into actionable goals with clear priorities, timelines, and expected impact. This ensures you focus on what will drive the most value for your business.
105083
+ </p>
105084
+
105085
+ <!-- Synthesis Summary Banner -->
105086
+ @if (unifiedGoalsCount() > 0) {
105087
+ <div [ngClass]="synthesisBannerClasses()" class="mt-4 p-4 rounded-xl flex items-start gap-4">
105088
+ <div [ngClass]="synthesisBannerIconClasses()" class="flex-shrink-0 p-2 rounded-lg">
105089
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
105090
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
105091
+ </svg>
105092
+ </div>
105093
+ <div class="flex-1">
105094
+ <p [ngClass]="synthesisBannerTitleClasses()" class="font-semibold text-base mb-1">
105095
+ {{ unifiedGoalsCount() }} Unified Goals Synthesized
105096
+ </p>
105097
+ <p [ngClass]="synthesisBannerTextClasses()" class="text-sm">
105098
+ We've combined insights from {{ sourceAnalysesCount() }} source analyses into actionable strategic priorities for {{ businessName() }}.
105099
+ </p>
105100
+ </div>
105101
+ </div>
105102
+ }
105103
+ </div>
105104
+
105105
+ <div class="lg:col-span-1">
105106
+ <symphiq-confidence-level-card
105107
+ [viewMode]="viewMode()"
105108
+ currentStepId="unified-analysis"
105109
+ [isCurrentStepComplete]="isUnifiedAnalysisComplete()"
105110
+ />
105111
+ </div>
105112
+ </div>
105113
+
105114
+ <symphiq-what-youll-see-below
105115
+ class="mt-6 block"
105116
+ [viewMode]="viewMode()"
105117
+ [items]="whatYoullSeeBelowItems"
105118
+ [analysisDate]="formattedAnalysisDate()"
105119
+ />
105120
+
105121
+ <symphiq-continue-your-journey
105122
+ class="mt-6 block"
105123
+ [viewMode]="viewMode()"
105124
+ [isOnboarded]="isOnboarded()"
105125
+ title="Maximize Your Unified Insights"
105126
+ onboardedTitle="Keep Your Unified Goals Current"
105127
+ description="To get the most comprehensive unified goals, ensure you've completed your Shop Analysis, Focus Area Analyses, and Metric Analyses. The more context Symphiq has about your business, the more precise and actionable your unified recommendations become."
105128
+ onboardedDescription="As you complete more analyses or update existing ones, your Unified Goals will be refined to reflect your current business context. Regenerate your unified analysis periodically to ensure recommendations stay aligned with your evolving strategy and priorities."
105129
+ />
105130
+ </div>
105131
+ </div>
105132
+ </div>
105133
+ </div>
105134
+ `
105135
+ }]
105136
+ }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], businessName: [{ type: i0.Input, args: [{ isSignal: true, alias: "businessName", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], analysisDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "analysisDate", required: false }] }], isUnifiedAnalysisComplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "isUnifiedAnalysisComplete", required: false }] }], sourceAnalysesCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceAnalysesCount", required: false }] }], unifiedGoalsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "unifiedGoalsCount", required: false }] }] }); })();
105137
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedWelcomeBannerComponent, { className: "UnifiedWelcomeBannerComponent", filePath: "lib/components/profile-analysis-unified-dashboard/unified-welcome-banner.component.ts", lineNumber: 92 }); })();
104896
105138
 
104897
105139
  const _c0$7 = () => [];
104898
105140
  const _c1$3 = a0 => ({ name: "flag", source: a0 });
104899
105141
  const _forTrack0$6 = ($index, $item) => $item.id;
104900
105142
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
104901
105143
  const _r1 = i0.ɵɵgetCurrentView();
104902
- i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 17);
105144
+ i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 15);
104903
105145
  i0.ɵɵlistener("nextStepClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_5_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.nextStepClick.emit()); })("stepClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_5_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.stepClick.emit($event)); });
104904
105146
  i0.ɵɵelementEnd();
104905
105147
  } if (rf & 2) {
@@ -104907,26 +105149,26 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_5_Template(
104907
105149
  i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("currentStepId", ctx_r1.JourneyStepIdEnum.UNIFIED_ANALYSIS)("showNextStepAction", false)("forDemo", ctx_r1.forDemo())("maxAccessibleStepId", ctx_r1.maxAccessibleStepId());
104908
105150
  } }
104909
105151
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
104910
- i0.ɵɵelement(0, "symphiq-loading-card", 19);
105152
+ i0.ɵɵelement(0, "symphiq-loading-card", 17);
104911
105153
  } if (rf & 2) {
104912
105154
  const ctx_r1 = i0.ɵɵnextContext(2);
104913
105155
  i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("backdropBlur", true);
104914
105156
  } }
104915
- function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template(rf, ctx) { if (rf & 1) {
105157
+ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template(rf, ctx) { if (rf & 1) {
104916
105158
  const _r4 = i0.ɵɵgetCurrentView();
104917
- i0.ɵɵelementStart(0, "symphiq-unified-goal-card", 39);
104918
- i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template_symphiq_unified_goal_card_goalClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); })("sourceBadgeClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template_symphiq_unified_goal_card_sourceBadgeClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onSourceBadgeClickFromCard($event)); })("relatedMetricsClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template_symphiq_unified_goal_card_relatedMetricsClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onRelatedMetricsClickFromCard($event)); })("learnMoreClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template_symphiq_unified_goal_card_learnMoreClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
105159
+ i0.ɵɵelementStart(0, "symphiq-unified-goal-card", 28);
105160
+ i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template_symphiq_unified_goal_card_goalClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); })("sourceBadgeClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template_symphiq_unified_goal_card_sourceBadgeClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onSourceBadgeClickFromCard($event)); })("relatedMetricsClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template_symphiq_unified_goal_card_relatedMetricsClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onRelatedMetricsClickFromCard($event)); })("learnMoreClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template_symphiq_unified_goal_card_learnMoreClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
104919
105161
  i0.ɵɵelementEnd();
104920
105162
  } if (rf & 2) {
104921
105163
  const goal_r5 = ctx.$implicit;
104922
105164
  const ctx_r1 = i0.ɵɵnextContext(4);
104923
105165
  i0.ɵɵproperty("goal", goal_r5)("viewMode", ctx_r1.viewMode());
104924
105166
  } }
104925
- function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
104926
- i0.ɵɵelementStart(0, "section", 31);
104927
- i0.ɵɵelement(1, "symphiq-section-divider", 35)(2, "symphiq-section-header", 36);
104928
- i0.ɵɵelementStart(3, "div", 37);
104929
- i0.ɵɵrepeaterCreate(4, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template, 1, 2, "symphiq-unified-goal-card", 38, _forTrack0$6);
105167
+ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
105168
+ i0.ɵɵelementStart(0, "section", 20);
105169
+ i0.ɵɵelement(1, "symphiq-section-divider", 24)(2, "symphiq-section-header", 25);
105170
+ i0.ɵɵelementStart(3, "div", 26);
105171
+ i0.ɵɵrepeaterCreate(4, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template, 1, 2, "symphiq-unified-goal-card", 27, _forTrack0$6);
104930
105172
  i0.ɵɵelementEnd()();
104931
105173
  } if (rf & 2) {
104932
105174
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -104939,54 +105181,27 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
104939
105181
  } }
104940
105182
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
104941
105183
  const _r3 = i0.ɵɵgetCurrentView();
104942
- i0.ɵɵelementStart(0, "div", 20)(1, "div", 21)(2, "div", 22)(3, "div", 23);
104943
- i0.ɵɵnamespaceSVG();
104944
- i0.ɵɵelementStart(4, "svg", 24);
104945
- i0.ɵɵelement(5, "path", 25);
104946
- i0.ɵɵelementEnd()();
104947
- i0.ɵɵnamespaceHTML();
104948
- i0.ɵɵelementStart(6, "div", 26)(7, "h1", 27);
104949
- i0.ɵɵtext(8);
105184
+ i0.ɵɵelement(0, "symphiq-unified-welcome-banner", 18);
105185
+ i0.ɵɵelementStart(1, "symphiq-unified-executive-summary", 19);
105186
+ i0.ɵɵlistener("viewAllPriorityActionsClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_executive_summary_viewAllPriorityActionsClick_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onViewAllPriorityActionsClick()); });
104950
105187
  i0.ɵɵelementEnd();
104951
- i0.ɵɵelementStart(9, "p", 28);
104952
- i0.ɵɵtext(10);
104953
- i0.ɵɵelementEnd();
104954
- i0.ɵɵelementStart(11, "p", 29);
104955
- i0.ɵɵtext(12, " These goals combine insights from your shop analysis, focus areas, and metric analyses into actionable strategic priorities. ");
104956
- i0.ɵɵelementEnd()()()()();
104957
- i0.ɵɵelementStart(13, "symphiq-unified-executive-summary", 30);
104958
- i0.ɵɵlistener("viewAllPriorityActionsClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_executive_summary_viewAllPriorityActionsClick_13_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onViewAllPriorityActionsClick()); });
105188
+ i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_Template, 6, 8, "section", 20);
105189
+ i0.ɵɵelementStart(3, "symphiq-unified-timeline", 21);
105190
+ i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_timeline_goalClick_3_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
104959
105191
  i0.ɵɵelementEnd();
104960
- i0.ɵɵconditionalCreate(14, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_Template, 6, 8, "section", 31);
104961
- i0.ɵɵelementStart(15, "symphiq-unified-timeline", 32);
104962
- i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_timeline_goalClick_15_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
105192
+ i0.ɵɵelementStart(4, "symphiq-unified-priority-matrix", 22);
105193
+ i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_priority_matrix_goalClick_4_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
104963
105194
  i0.ɵɵelementEnd();
104964
- i0.ɵɵelementStart(16, "symphiq-unified-priority-matrix", 33);
104965
- i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_priority_matrix_goalClick_16_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
104966
- i0.ɵɵelementEnd();
104967
- i0.ɵɵelementStart(17, "symphiq-unified-next-steps", 34);
104968
- i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_next_steps_goalClick_17_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
105195
+ i0.ɵɵelementStart(5, "symphiq-unified-next-steps", 23);
105196
+ i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_next_steps_goalClick_5_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
104969
105197
  i0.ɵɵelementEnd();
104970
105198
  } if (rf & 2) {
104971
105199
  const ctx_r1 = i0.ɵɵnextContext(2);
105200
+ i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("businessName", ctx_r1.businessName())("isOnboarded", ctx_r1.isOnboarded())("analysisDate", ctx_r1.unifiedAnalysisDate())("isUnifiedAnalysisComplete", !ctx_r1.isLoading() && !ctx_r1.isGenerating())("sourceAnalysesCount", ctx_r1.sourceAnalysesCount())("unifiedGoalsCount", ctx_r1.unifiedGoals().length);
104972
105201
  i0.ɵɵadvance();
104973
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeBannerClasses());
104974
- i0.ɵɵadvance(2);
104975
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeIconClasses());
104976
- i0.ɵɵadvance(4);
104977
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeTitleClasses());
104978
- i0.ɵɵadvance();
104979
- i0.ɵɵtextInterpolate1(" Unified Goals for ", ctx_r1.businessName(), " ");
104980
- i0.ɵɵadvance();
104981
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeSubtitleClasses());
104982
- i0.ɵɵadvance();
104983
- i0.ɵɵtextInterpolate2(" We've synthesized ", ctx_r1.unifiedGoals().length, " unified goals from ", ctx_r1.sourceAnalysesCount(), " source analyses. ");
104984
- i0.ɵɵadvance();
104985
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeDescriptionClasses());
104986
- i0.ɵɵadvance(2);
104987
105202
  i0.ɵɵproperty("summary", ctx_r1.executiveSummary())("viewMode", ctx_r1.viewMode())("shopCounts", ctx_r1.shopCounts())("focusAreaCounts", ctx_r1.focusAreaCounts())("metricCounts", ctx_r1.metricCounts());
104988
105203
  i0.ɵɵadvance();
104989
- i0.ɵɵconditional(ctx_r1.unifiedGoals().length > 0 ? 14 : -1);
105204
+ i0.ɵɵconditional(ctx_r1.unifiedGoals().length > 0 ? 2 : -1);
104990
105205
  i0.ɵɵadvance();
104991
105206
  i0.ɵɵproperty("timeline", ctx_r1.unifiedTimeline())("viewMode", ctx_r1.viewMode())("goals", ctx_r1.unifiedGoals());
104992
105207
  i0.ɵɵadvance();
@@ -104995,20 +105210,20 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
104995
105210
  i0.ɵɵproperty("steps", ctx_r1.nextSteps())("viewMode", ctx_r1.viewMode())("goals", ctx_r1.unifiedGoals());
104996
105211
  } }
104997
105212
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
104998
- i0.ɵɵelement(0, "symphiq-grade-badge", 46);
105213
+ i0.ɵɵelement(0, "symphiq-grade-badge", 36);
104999
105214
  } if (rf & 2) {
105000
105215
  const summary_r6 = i0.ɵɵnextContext();
105001
105216
  const ctx_r1 = i0.ɵɵnextContext(3);
105002
105217
  i0.ɵɵproperty("grade", summary_r6.overallGrade)("gradeRationale", summary_r6.gradeRationale || "")("viewMode", ctx_r1.viewMode());
105003
105218
  } }
105004
105219
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
105005
- i0.ɵɵelementStart(0, "section", 40)(1, "div", 41)(2, "div", 42)(3, "div", 43)(4, "div", 26)(5, "h2", 44);
105220
+ i0.ɵɵelementStart(0, "section", 29)(1, "div", 30)(2, "div", 31)(3, "div", 32)(4, "div", 33)(5, "h2", 34);
105006
105221
  i0.ɵɵtext(6, " Executive Summary ");
105007
105222
  i0.ɵɵelementEnd();
105008
- i0.ɵɵelementStart(7, "p", 45);
105223
+ i0.ɵɵelementStart(7, "p", 35);
105009
105224
  i0.ɵɵtext(8);
105010
105225
  i0.ɵɵelementEnd()();
105011
- i0.ɵɵconditionalCreate(9, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Conditional_9_Template, 1, 3, "symphiq-grade-badge", 46);
105226
+ i0.ɵɵconditionalCreate(9, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Conditional_9_Template, 1, 3, "symphiq-grade-badge", 36);
105012
105227
  i0.ɵɵelementEnd()()()();
105013
105228
  } if (rf & 2) {
105014
105229
  const summary_r6 = ctx;
@@ -105025,16 +105240,16 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
105025
105240
  i0.ɵɵconditional(summary_r6.overallGrade ? 9 : -1);
105026
105241
  } }
105027
105242
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
105028
- i0.ɵɵconditionalCreate(0, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Template, 10, 5, "section", 40);
105243
+ i0.ɵɵconditionalCreate(0, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Template, 10, 5, "section", 29);
105029
105244
  } if (rf & 2) {
105030
105245
  let tmp_2_0;
105031
105246
  const ctx_r1 = i0.ɵɵnextContext(2);
105032
105247
  i0.ɵɵconditional((tmp_2_0 = ctx_r1.executiveSummary()) ? 0 : -1, tmp_2_0);
105033
105248
  } }
105034
105249
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
105035
- i0.ɵɵelementStart(0, "main", 18);
105036
- i0.ɵɵconditionalCreate(1, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template, 1, 2, "symphiq-loading-card", 19);
105037
- i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 18, 22);
105250
+ i0.ɵɵelementStart(0, "main", 16);
105251
+ i0.ɵɵconditionalCreate(1, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template, 1, 2, "symphiq-loading-card", 17);
105252
+ i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 6, 21);
105038
105253
  i0.ɵɵconditionalCreate(3, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Template, 1, 1);
105039
105254
  i0.ɵɵelementEnd();
105040
105255
  } if (rf & 2) {
@@ -105055,7 +105270,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_7_Template(
105055
105270
  } }
105056
105271
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
105057
105272
  const _r7 = i0.ɵɵgetCurrentView();
105058
- i0.ɵɵelementStart(0, "symphiq-search-modal", 47);
105273
+ i0.ɵɵelementStart(0, "symphiq-search-modal", 37);
105059
105274
  i0.ɵɵlistener("close", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_8_Template_symphiq_search_modal_close_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeSearch()); });
105060
105275
  i0.ɵɵelementEnd();
105061
105276
  } if (rf & 2) {
@@ -105064,7 +105279,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_8_Template(
105064
105279
  } }
105065
105280
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
105066
105281
  const _r8 = i0.ɵɵgetCurrentView();
105067
- i0.ɵɵelementStart(0, "symphiq-view-mode-switcher-modal", 48);
105282
+ i0.ɵɵelementStart(0, "symphiq-view-mode-switcher-modal", 38);
105068
105283
  i0.ɵɵlistener("close", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template_symphiq_view_mode_switcher_modal_close_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeViewModeSwitcher()); })("modeSelected", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template_symphiq_view_mode_switcher_modal_modeSelected_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleDisplayModeChange($event)); });
105069
105284
  i0.ɵɵelementEnd();
105070
105285
  } if (rf & 2) {
@@ -105073,7 +105288,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template(
105073
105288
  } }
105074
105289
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
105075
105290
  const _r9 = i0.ɵɵgetCurrentView();
105076
- i0.ɵɵelementStart(0, "symphiq-mark-as-reviewed-footer", 49);
105291
+ i0.ɵɵelementStart(0, "symphiq-mark-as-reviewed-footer", 39);
105077
105292
  i0.ɵɵlistener("markAsReviewed", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_10_Template_symphiq_mark_as_reviewed_footer_markAsReviewed_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleMarkAsReviewedClick()); });
105078
105293
  i0.ɵɵelementEnd();
105079
105294
  } if (rf & 2) {
@@ -105122,6 +105337,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105122
105337
  this.isViewModeSwitcherOpen = signal(false, ...(ngDevMode ? [{ debugName: "isViewModeSwitcherOpen" }] : []));
105123
105338
  this.funnelAnalysisSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "funnelAnalysisSignal" }] : []));
105124
105339
  this.loadingSourceAnalysisId = signal(undefined, ...(ngDevMode ? [{ debugName: "loadingSourceAnalysisId" }] : []));
105340
+ this.pendingSourceRequest = signal(undefined, ...(ngDevMode ? [{ debugName: "pendingSourceRequest" }] : []));
105125
105341
  this.fabExpanded = signal(false, ...(ngDevMode ? [{ debugName: "fabExpanded" }] : []));
105126
105342
  this.activeNavSection = signal('executive-summary', ...(ngDevMode ? [{ debugName: "activeNavSection" }] : []));
105127
105343
  this.mobileNavSections = [
@@ -105231,6 +105447,13 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105231
105447
  }
105232
105448
  return uniqueIds.size || this.sourceProfileAnalyses()?.length || 0;
105233
105449
  }, ...(ngDevMode ? [{ debugName: "sourceAnalysesCount" }] : []));
105450
+ this.unifiedAnalysisDate = computed(() => {
105451
+ const analysis = this.unifiedProfileAnalysis();
105452
+ if (analysis?.selfContentCompletedDate) {
105453
+ return new Date(analysis.selfContentCompletedDate);
105454
+ }
105455
+ return undefined;
105456
+ }, ...(ngDevMode ? [{ debugName: "unifiedAnalysisDate" }] : []));
105234
105457
  this.shopCounts = computed(() => {
105235
105458
  return this.countByType(ProfileAnalysisTypeEnum.SHOP);
105236
105459
  }, ...(ngDevMode ? [{ debugName: "shopCounts" }] : []));
@@ -105299,13 +105522,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105299
105522
  this.priorityMatrix = computed(() => {
105300
105523
  const matrixData = this.analysisData()?.unifiedPriorityMatrix;
105301
105524
  const goals = this.unifiedGoals();
105302
- console.log('[PriorityMatrix] Raw matrixData:', matrixData);
105303
- console.log('[PriorityMatrix] Goals available:', goals.map(g => ({ id: g.id, title: g.title })));
105304
105525
  if (matrixData) {
105305
- console.log('[PriorityMatrix] quickWins items:', matrixData.quickWins);
105306
- console.log('[PriorityMatrix] majorProjects items:', matrixData.majorProjects);
105307
- console.log('[PriorityMatrix] fillIns items:', matrixData.fillIns);
105308
- console.log('[PriorityMatrix] thankless items:', matrixData.thankless);
105309
105526
  const findGoal = (id, quadrant) => {
105310
105527
  const found = goals.find(g => g.id === id);
105311
105528
  console.log(`[PriorityMatrix] ${quadrant} - Looking for goal id="${id}", found:`, found ? found.title : 'NOT FOUND');
@@ -105349,7 +105566,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105349
105566
  const analysis = this.unifiedProfileAnalysis();
105350
105567
  if (!analysis)
105351
105568
  return false;
105352
- return false;
105569
+ return analysis.selfContentStatus === AiDynamicContentStatusEnum.GENERATED &&
105570
+ analysis.reviewStatus === ProfileAnalysisReviewStatusEnum.NOT_REVIEWED;
105353
105571
  }, ...(ngDevMode ? [{ debugName: "shouldShowReviewFooter" }] : []));
105354
105572
  this.welcomeBannerClasses = computed(() => this.isLightMode()
105355
105573
  ? 'bg-gradient-to-r from-blue-600 via-cyan-600 to-teal-600 text-white'
@@ -105441,6 +105659,17 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105441
105659
  }
105442
105660
  }
105443
105661
  }, ...(ngDevMode ? [{ debugName: "embeddedScrollEffect" }] : []));
105662
+ this.pendingSourceRequestEffect = effect(() => {
105663
+ const pending = this.pendingSourceRequest();
105664
+ if (!pending?.analysisId)
105665
+ return;
105666
+ const analysis = this.sourceAnalysesMap().get(pending.analysisId);
105667
+ if (analysis) {
105668
+ untracked(() => {
105669
+ this.openSourceGoalModal(analysis, pending.sourceGoalId);
105670
+ });
105671
+ }
105672
+ }, ...(ngDevMode ? [{ debugName: "pendingSourceRequestEffect" }] : []));
105444
105673
  }
105445
105674
  ngOnChanges(changes) {
105446
105675
  if (changes['funnelAnalysis']) {
@@ -105527,11 +105756,51 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105527
105756
  onPriorityActionGoalClick(goalId) {
105528
105757
  const goal = this.unifiedGoals().find(g => g.id === goalId);
105529
105758
  if (goal) {
105530
- this.onGoalClick(goal);
105759
+ const currentState = this.modalService.getCurrentState();
105760
+ this.modalService.openUnifiedGoalModal(goal, this.allMetrics(), this.allCharts(), this.loadedSourceAnalysisIds().map(String), this.viewMode(), this.loadingSourceAnalysisId() !== undefined ? String(this.loadingSourceAnalysisId()) : undefined, currentState);
105531
105761
  }
105532
105762
  }
105533
105763
  onPriorityActionRecommendationClick(recommendationId) {
105534
- console.log('Recommendation click not yet implemented. ID:', recommendationId);
105764
+ const result = this.findRecommendationInSourceAnalyses(recommendationId);
105765
+ if (result) {
105766
+ this.modalService.navigateToSourceRecommendation(result.recommendation, result.strategy, result.objective, result.goal, result.sourceAnalysisRef, result.unifiedGoal, this.viewMode());
105767
+ }
105768
+ else {
105769
+ console.warn('[Priority Actions] Recommendation not found in loaded source analyses. ID:', recommendationId);
105770
+ }
105771
+ }
105772
+ findRecommendationInSourceAnalyses(recommendationId) {
105773
+ const sourceAnalysesMap = this.sourceAnalysesMap();
105774
+ const unifiedGoals = this.unifiedGoals();
105775
+ for (const [analysisId, analysis] of sourceAnalysesMap.entries()) {
105776
+ const structured = analysis.profileAnalysisStructured;
105777
+ const goals = structured?.strategicRoadmap?.goals || [];
105778
+ for (const goal of goals) {
105779
+ for (const objective of goal.objectives || []) {
105780
+ for (const strategy of objective.strategies || []) {
105781
+ for (const recommendation of strategy.recommendations || []) {
105782
+ if (recommendation.id === recommendationId) {
105783
+ const unifiedGoal = unifiedGoals.find(ug => ug.sourceAnalyses?.some(sa => sa.analysisId === analysisId && sa.sourceGoalId === goal.id));
105784
+ if (unifiedGoal) {
105785
+ const sourceAnalysisRef = unifiedGoal.sourceAnalyses?.find(sa => sa.analysisId === analysisId && sa.sourceGoalId === goal.id);
105786
+ if (sourceAnalysisRef) {
105787
+ return {
105788
+ recommendation,
105789
+ strategy,
105790
+ objective,
105791
+ goal,
105792
+ sourceAnalysisRef,
105793
+ unifiedGoal
105794
+ };
105795
+ }
105796
+ }
105797
+ }
105798
+ }
105799
+ }
105800
+ }
105801
+ }
105802
+ }
105803
+ return null;
105535
105804
  }
105536
105805
  onSourceBadgeClick(event, source, goal) {
105537
105806
  event.stopPropagation();
@@ -105584,6 +105853,34 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105584
105853
  this.modalService.openMetricsListModal(metrics, this.allCharts(), { title: goal.title || '', description: goal.description || '', businessContext: '', priority: 0 });
105585
105854
  }
105586
105855
  }
105856
+ handleSourceAnalysisClickFromModal(source) {
105857
+ const analysisId = source.analysisId;
105858
+ if (analysisId === undefined)
105859
+ return;
105860
+ const existingAnalysis = this.sourceAnalysesMap().get(analysisId);
105861
+ if (existingAnalysis) {
105862
+ this.openSourceGoalModal(existingAnalysis, source.sourceGoalId);
105863
+ }
105864
+ else {
105865
+ this.loadingSourceAnalysisId.set(analysisId);
105866
+ this.pendingSourceRequest.set(source);
105867
+ this.sourceAnalysisRequest.emit({
105868
+ analysisType: source.analysisType,
105869
+ analysisId: analysisId,
105870
+ sourceGoalId: source.sourceGoalId
105871
+ });
105872
+ }
105873
+ }
105874
+ openSourceGoalModal(analysis, sourceGoalId) {
105875
+ const structured = analysis.profileAnalysisStructured;
105876
+ const goals = structured?.strategicRoadmap?.goals || [];
105877
+ const goal = goals.find(g => g.id === sourceGoalId);
105878
+ if (goal) {
105879
+ this.modalService.openGoalDetailModal(goal, this.viewMode());
105880
+ }
105881
+ this.loadingSourceAnalysisId.set(undefined);
105882
+ this.pendingSourceRequest.set(undefined);
105883
+ }
105587
105884
  onShopGoalsClick() {
105588
105885
  const element = document.getElementById('section-unified-goals');
105589
105886
  if (element) {
@@ -105855,7 +106152,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105855
106152
  static { this.ɵfac = function SymphiqProfileAnalysisUnifiedDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqProfileAnalysisUnifiedDashboardComponent)(); }; }
105856
106153
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqProfileAnalysisUnifiedDashboardComponent, selectors: [["symphiq-profile-analysis-unified-dashboard"]], hostBindings: function SymphiqProfileAnalysisUnifiedDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
105857
106154
  i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisUnifiedDashboardComponent_scroll_HostBindingHandler() { return ctx.onScroll(); }, i0.ɵɵresolveWindow);
105858
- } }, inputs: { viewMode: [1, "viewMode"], embedded: [1, "embedded"], isLoading: [1, "isLoading"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], unifiedProfileAnalysis: [1, "unifiedProfileAnalysis"], sourceProfileAnalyses: [1, "sourceProfileAnalyses"], isLoadingSourceAnalysis: [1, "isLoadingSourceAnalysis"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"], requestedByUser: [1, "requestedByUser"] }, outputs: { markAsReviewedClick: "markAsReviewedClick", generateGoalsClick: "generateGoalsClick", stepClick: "stepClick", nextStepClick: "nextStepClick", sourceAnalysisRequest: "sourceAnalysisRequest" }, features: [i0.ɵɵNgOnChangesFeature], decls: 18, vars: 37, consts: [[1, "relative"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [3, "viewMode", "progress", "embedded"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "showControls", "embedded", "scrollEvent"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12", 3, "pb-32"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "isLightMode", "isOpen"], [3, "viewMode", "currentMode", "isOpen"], [3, "viewMode", "selfContentStatus", "isLoading"], [3, "viewMode", "itemStatus", "currentStatus", "confettiIntensity", "title"], [3, "expandedChange", "scrollToTop", "toggleView", "isLightMode", "isCompactMode", "isExpanded"], [3, "navigate", "isLightMode", "sections", "activeSection"], [3, "priorityActionGoalClick", "priorityActionRecommendationClick", "viewMode"], [3, "isLightMode"], [3, "isLightMode", "allInsights", "allMetrics", "allCharts"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], ["title", "Loading Your Unified Analysis", "subtitle", "Please wait while we prepare your synthesized insights...", "size", "large", 3, "viewMode", "backdropBlur"], [1, "mb-12"], [1, "rounded-2xl", "p-8", "shadow-xl", "animate-fade-in-up", 3, "ngClass"], [1, "flex", "items-start", "gap-6"], [1, "p-4", "rounded-xl", "flex-shrink-0", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-8", "h-8"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [1, "text-lg", "mb-4", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [3, "viewAllPriorityActionsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], ["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "goalClick", "timeline", "viewMode", "goals"], [3, "goalClick", "matrix", "viewMode"], [3, "goalClick", "steps", "viewMode", "goals"], [3, "viewMode", "sectionIcon"], ["title", "Unified Goals", 3, "icon", "viewMode"], [1, "grid", "gap-6", 2, "grid-template-columns", "repeat(auto-fit, minmax(340px, 1fr))"], [3, "goal", "viewMode"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "learnMoreClick", "goal", "viewMode"], ["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [3, "close", "isLightMode", "isOpen"], [3, "close", "modeSelected", "viewMode", "currentMode", "isOpen"], [3, "markAsReviewed", "viewMode", "selfContentStatus", "isLoading"]], template: function SymphiqProfileAnalysisUnifiedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
106155
+ } }, inputs: { viewMode: [1, "viewMode"], embedded: [1, "embedded"], isLoading: [1, "isLoading"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], unifiedProfileAnalysis: [1, "unifiedProfileAnalysis"], sourceProfileAnalyses: [1, "sourceProfileAnalyses"], isLoadingSourceAnalysis: [1, "isLoadingSourceAnalysis"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"], requestedByUser: [1, "requestedByUser"] }, outputs: { markAsReviewedClick: "markAsReviewedClick", generateGoalsClick: "generateGoalsClick", stepClick: "stepClick", nextStepClick: "nextStepClick", sourceAnalysisRequest: "sourceAnalysisRequest" }, features: [i0.ɵɵNgOnChangesFeature], decls: 16, vars: 32, consts: [[1, "relative"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [3, "viewMode", "progress", "embedded"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "showControls", "embedded", "scrollEvent"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12", 3, "pb-32"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "isLightMode", "isOpen"], [3, "viewMode", "currentMode", "isOpen"], [3, "viewMode", "selfContentStatus", "isLoading"], [3, "viewMode", "itemStatus", "currentStatus", "confettiIntensity", "title"], [3, "priorityActionGoalClick", "priorityActionRecommendationClick", "sourceAnalysisClickRequest", "viewMode", "loadingSourceAnalysisId"], [3, "isLightMode"], [3, "isLightMode", "allInsights", "allMetrics", "allCharts"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], ["title", "Loading Your Unified Analysis", "subtitle", "Please wait while we prepare your synthesized insights...", "size", "large", 3, "viewMode", "backdropBlur"], [1, "mb-12", "block", 3, "viewMode", "businessName", "isOnboarded", "analysisDate", "isUnifiedAnalysisComplete", "sourceAnalysesCount", "unifiedGoalsCount"], [3, "viewAllPriorityActionsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], ["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "goalClick", "timeline", "viewMode", "goals"], [3, "goalClick", "matrix", "viewMode"], [3, "goalClick", "steps", "viewMode", "goals"], [3, "viewMode", "sectionIcon"], ["title", "Unified Goals", 3, "icon", "viewMode"], [1, "grid", "gap-6", 2, "grid-template-columns", "repeat(auto-fit, minmax(340px, 1fr))"], [3, "goal", "viewMode"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "learnMoreClick", "goal", "viewMode"], ["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [3, "close", "isLightMode", "isOpen"], [3, "close", "modeSelected", "viewMode", "currentMode", "isOpen"], [3, "markAsReviewed", "viewMode", "selfContentStatus", "isLoading"]], template: function SymphiqProfileAnalysisUnifiedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
105859
106156
  i0.ɵɵelementStart(0, "div", 0);
105860
106157
  i0.ɵɵelement(1, "div", 1)(2, "symphiq-scroll-progress-bar", 2);
105861
106158
  i0.ɵɵelementStart(3, "div", 3)(4, "symphiq-dashboard-header", 4);
@@ -105869,17 +106166,11 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105869
106166
  i0.ɵɵconditionalCreate(9, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template, 1, 3, "symphiq-view-mode-switcher-modal", 9);
105870
106167
  i0.ɵɵconditionalCreate(10, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_10_Template, 1, 3, "symphiq-mark-as-reviewed-footer", 10);
105871
106168
  i0.ɵɵconditionalCreate(11, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_11_Template, 1, 5, "symphiq-content-generation-progress-with-confetti", 11);
105872
- i0.ɵɵelementStart(12, "symphiq-mobile-fab", 12);
105873
- i0.ɵɵlistener("expandedChange", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_mobile_fab_expandedChange_12_listener($event) { return ctx.fabExpanded.set($event); })("scrollToTop", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_mobile_fab_scrollToTop_12_listener() { return ctx.scrollToTop(); })("toggleView", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_mobile_fab_toggleView_12_listener() { return ctx.openViewModeSwitcher(); });
105874
- i0.ɵɵelementEnd();
105875
- i0.ɵɵelementStart(13, "symphiq-mobile-bottom-nav", 13);
105876
- i0.ɵɵlistener("navigate", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_mobile_bottom_nav_navigate_13_listener($event) { return ctx.handleMobileNavigation($event); });
105877
- i0.ɵɵelementEnd();
105878
- i0.ɵɵelement(14, "symphiq-tooltip-container");
105879
- i0.ɵɵelementStart(15, "symphiq-unified-dashboard-modal", 14);
105880
- i0.ɵɵlistener("priorityActionGoalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_unified_dashboard_modal_priorityActionGoalClick_15_listener($event) { return ctx.onPriorityActionGoalClick($event); })("priorityActionRecommendationClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_unified_dashboard_modal_priorityActionRecommendationClick_15_listener($event) { return ctx.onPriorityActionRecommendationClick($event); });
106169
+ i0.ɵɵelement(12, "symphiq-tooltip-container");
106170
+ i0.ɵɵelementStart(13, "symphiq-unified-dashboard-modal", 12);
106171
+ i0.ɵɵlistener("priorityActionGoalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_unified_dashboard_modal_priorityActionGoalClick_13_listener($event) { return ctx.onPriorityActionGoalClick($event); })("priorityActionRecommendationClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_unified_dashboard_modal_priorityActionRecommendationClick_13_listener($event) { return ctx.onPriorityActionRecommendationClick($event); })("sourceAnalysisClickRequest", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_unified_dashboard_modal_sourceAnalysisClickRequest_13_listener($event) { return ctx.handleSourceAnalysisClickFromModal($event); });
105881
106172
  i0.ɵɵelementEnd();
105882
- i0.ɵɵelement(16, "symphiq-business-analysis-modal", 15)(17, "symphiq-profile-analysis-modal", 16);
106173
+ i0.ɵɵelement(14, "symphiq-business-analysis-modal", 13)(15, "symphiq-profile-analysis-modal", 14);
105883
106174
  i0.ɵɵelementEnd();
105884
106175
  } if (rf & 2) {
105885
106176
  i0.ɵɵclassProp("min-h-screen", !ctx.embedded());
@@ -105903,16 +106194,12 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105903
106194
  i0.ɵɵconditional(ctx.shouldShowReviewFooter() ? 10 : -1);
105904
106195
  i0.ɵɵadvance();
105905
106196
  i0.ɵɵconditional(!ctx.isLoading() && ctx.isGenerating() ? 11 : -1);
105906
- i0.ɵɵadvance();
105907
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("isCompactMode", ctx.isCompactView())("isExpanded", ctx.fabExpanded());
105908
- i0.ɵɵadvance();
105909
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("sections", ctx.mobileNavSections)("activeSection", ctx.activeNavSection());
105910
106197
  i0.ɵɵadvance(2);
105911
- i0.ɵɵproperty("viewMode", ctx.viewMode());
106198
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("loadingSourceAnalysisId", ctx.loadingSourceAnalysisId());
105912
106199
  i0.ɵɵadvance();
105913
106200
  i0.ɵɵproperty("isLightMode", ctx.isLightMode());
105914
106201
  i0.ɵɵadvance();
105915
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(36, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
106202
+ i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(31, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
105916
106203
  } }, dependencies: [CommonModule, i1$1.NgClass, DashboardHeaderComponent,
105917
106204
  ScrollProgressBarComponent,
105918
106205
  SearchModalComponent,
@@ -105926,8 +106213,6 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105926
106213
  LoadingCardComponent,
105927
106214
  MarkAsReviewedFooterComponent,
105928
106215
  ProfileAnalysisModalComponent,
105929
- MobileFABComponent,
105930
- MobileBottomNavComponent,
105931
106216
  UnifiedGoalCardComponent,
105932
106217
  UnifiedExecutiveSummaryComponent,
105933
106218
  UnifiedTimelineComponent,
@@ -105935,7 +106220,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105935
106220
  UnifiedNextStepsComponent,
105936
106221
  TooltipContainerComponent,
105937
106222
  UnifiedDashboardModalComponent,
105938
- BusinessAnalysisModalComponent], encapsulation: 2, changeDetection: 0 }); }
106223
+ BusinessAnalysisModalComponent,
106224
+ UnifiedWelcomeBannerComponent], encapsulation: 2, changeDetection: 0 }); }
105939
106225
  }
105940
106226
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqProfileAnalysisUnifiedDashboardComponent, [{
105941
106227
  type: Component,
@@ -105953,13 +106239,10 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105953
106239
  GradeBadgeComponent,
105954
106240
  SectionDividerComponent,
105955
106241
  SectionHeaderComponent,
105956
- SymphiqIconComponent,
105957
106242
  ContentGenerationProgressWithConfettiComponent,
105958
106243
  LoadingCardComponent,
105959
106244
  MarkAsReviewedFooterComponent,
105960
106245
  ProfileAnalysisModalComponent,
105961
- MobileFABComponent,
105962
- MobileBottomNavComponent,
105963
106246
  UnifiedGoalCardComponent,
105964
106247
  UnifiedExecutiveSummaryComponent,
105965
106248
  UnifiedTimelineComponent,
@@ -105967,7 +106250,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105967
106250
  UnifiedNextStepsComponent,
105968
106251
  TooltipContainerComponent,
105969
106252
  UnifiedDashboardModalComponent,
105970
- BusinessAnalysisModalComponent
106253
+ BusinessAnalysisModalComponent,
106254
+ UnifiedWelcomeBannerComponent
105971
106255
  ],
105972
106256
  changeDetection: ChangeDetectionStrategy.OnPush,
105973
106257
  template: `
@@ -106025,28 +106309,16 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106025
106309
 
106026
106310
  @if (isSimplifiedView() && !isLoading() && !isGenerating()) {
106027
106311
  <!-- Welcome Banner -->
106028
- <div class="mb-12">
106029
- <div [ngClass]="welcomeBannerClasses()" class="rounded-2xl p-8 shadow-xl animate-fade-in-up">
106030
- <div class="flex items-start gap-6">
106031
- <div [ngClass]="welcomeIconClasses()" class="p-4 rounded-xl flex-shrink-0">
106032
- <svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
106033
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
106034
- </svg>
106035
- </div>
106036
- <div class="flex-1">
106037
- <h1 [ngClass]="welcomeTitleClasses()" class="text-2xl font-bold mb-2">
106038
- Unified Goals for {{ businessName() }}
106039
- </h1>
106040
- <p [ngClass]="welcomeSubtitleClasses()" class="text-lg mb-4">
106041
- We've synthesized {{ unifiedGoals().length }} unified goals from {{ sourceAnalysesCount() }} source analyses.
106042
- </p>
106043
- <p [ngClass]="welcomeDescriptionClasses()" class="text-sm">
106044
- These goals combine insights from your shop analysis, focus areas, and metric analyses into actionable strategic priorities.
106045
- </p>
106046
- </div>
106047
- </div>
106048
- </div>
106049
- </div>
106312
+ <symphiq-unified-welcome-banner
106313
+ class="mb-12 block"
106314
+ [viewMode]="viewMode()"
106315
+ [businessName]="businessName()"
106316
+ [isOnboarded]="isOnboarded()"
106317
+ [analysisDate]="unifiedAnalysisDate()"
106318
+ [isUnifiedAnalysisComplete]="!isLoading() && !isGenerating()"
106319
+ [sourceAnalysesCount]="sourceAnalysesCount()"
106320
+ [unifiedGoalsCount]="unifiedGoals().length"
106321
+ />
106050
106322
 
106051
106323
  <!-- Executive Summary -->
106052
106324
  <symphiq-unified-executive-summary
@@ -106190,30 +106462,14 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106190
106462
  />
106191
106463
  }
106192
106464
 
106193
- <!-- Mobile FAB -->
106194
- <symphiq-mobile-fab
106195
- [isLightMode]="isLightMode()"
106196
- [isCompactMode]="isCompactView()"
106197
- [isExpanded]="fabExpanded()"
106198
- (expandedChange)="fabExpanded.set($event)"
106199
- (scrollToTop)="scrollToTop()"
106200
- (toggleView)="openViewModeSwitcher()"
106201
- />
106202
-
106203
- <!-- Mobile Bottom Navigation -->
106204
- <symphiq-mobile-bottom-nav
106205
- [isLightMode]="isLightMode()"
106206
- [sections]="mobileNavSections"
106207
- [activeSection]="activeNavSection()"
106208
- (navigate)="handleMobileNavigation($event)"
106209
- />
106210
-
106211
- <symphiq-tooltip-container></symphiq-tooltip-container>
106465
+ <symphiq-tooltip-container/>
106212
106466
 
106213
106467
  <symphiq-unified-dashboard-modal
106214
106468
  [viewMode]="viewMode()"
106469
+ [loadingSourceAnalysisId]="loadingSourceAnalysisId()"
106215
106470
  (priorityActionGoalClick)="onPriorityActionGoalClick($event)"
106216
106471
  (priorityActionRecommendationClick)="onPriorityActionRecommendationClick($event)"
106472
+ (sourceAnalysisClickRequest)="handleSourceAnalysisClickFromModal($event)"
106217
106473
  />
106218
106474
  <symphiq-business-analysis-modal [isLightMode]="isLightMode()" />
106219
106475
  <symphiq-profile-analysis-modal
@@ -106229,7 +106485,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106229
106485
  type: HostListener,
106230
106486
  args: ['window:scroll']
106231
106487
  }] }); })();
106232
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 377 }); })();
106488
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 343 }); })();
106233
106489
 
106234
106490
  function SymphiqProfileMetricsAnalysesDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
106235
106491
  const _r1 = i0.ɵɵgetCurrentView();