@eric-emg/symphiq-components 1.3.61 → 1.3.63

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) {
@@ -101512,7 +101515,7 @@ class SourceGoalsSummaryCardComponent {
101512
101515
  }
101513
101516
  }
101514
101517
  static { this.ɵfac = function SourceGoalsSummaryCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SourceGoalsSummaryCardComponent)(); }; }
101515
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceGoalsSummaryCardComponent, selectors: [["symphiq-source-goals-summary-card"]], inputs: { viewMode: [1, "viewMode"], shopCounts: [1, "shopCounts"], focusAreaCounts: [1, "focusAreaCounts"], metricCounts: [1, "metricCounts"] }, decls: 28, vars: 17, consts: [[1, "p-6", "rounded-xl", "mb-4", "flex", "items-center", "justify-between", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", "opacity-80"], [1, "text-4xl", "font-bold"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4"], [1, "p-4", "rounded-xl", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2"], [1, "text-sm", "opacity-80"]], template: function SourceGoalsSummaryCardComponent_Template(rf, ctx) { if (rf & 1) {
101518
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceGoalsSummaryCardComponent, selectors: [["symphiq-source-goals-summary-card"]], inputs: { viewMode: [1, "viewMode"], shopCounts: [1, "shopCounts"], focusAreaCounts: [1, "focusAreaCounts"], metricCounts: [1, "metricCounts"] }, decls: 28, vars: 17, consts: [[1, "p-6", "rounded-xl", "flex", "items-center", "justify-between", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", "opacity-80"], [1, "text-4xl", "font-bold"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4"], [1, "p-4", "rounded-xl", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2"], [1, "text-sm", "opacity-80"]], template: function SourceGoalsSummaryCardComponent_Template(rf, ctx) { if (rf & 1) {
101516
101519
  i0.ɵɵelementStart(0, "div", 0)(1, "div")(2, "div", 1);
101517
101520
  i0.ɵɵtext(3, "Total Source Goals");
101518
101521
  i0.ɵɵelementEnd();
@@ -101578,7 +101581,7 @@ class SourceGoalsSummaryCardComponent {
101578
101581
  imports: [CommonModule],
101579
101582
  changeDetection: ChangeDetectionStrategy.OnPush,
101580
101583
  template: `
101581
- <div [ngClass]="totalGoalsCardClasses()" class="p-6 rounded-xl mb-4 flex items-center justify-between">
101584
+ <div [ngClass]="totalGoalsCardClasses()" class="p-6 rounded-xl flex items-center justify-between">
101582
101585
  <div>
101583
101586
  <div class="text-xs font-semibold uppercase mb-1 opacity-80">Total Source Goals</div>
101584
101587
  <div class="text-4xl font-bold">{{ totalSourceGoalsCount() }}</div>
@@ -101606,157 +101609,92 @@ class SourceGoalsSummaryCardComponent {
101606
101609
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], shopCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopCounts", required: false }] }], focusAreaCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaCounts", required: false }] }], metricCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricCounts", required: false }] }] }); })();
101607
101610
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SourceGoalsSummaryCardComponent, { className: "SourceGoalsSummaryCardComponent", filePath: "lib/components/shared/source-goals-summary-card.component.ts", lineNumber: 41 }); })();
101608
101611
 
101609
- function PriorityActionsStripComponent_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
101610
- const _r3 = i0.ɵɵgetCurrentView();
101611
- i0.ɵɵelementStart(0, "button", 7);
101612
- i0.ɵɵlistener("click", function PriorityActionsStripComponent_Conditional_0_For_8_Template_button_click_0_listener() { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.itemClicked.emit(item_r4)); });
101613
- i0.ɵɵelementStart(1, "div", 8);
101614
- i0.ɵɵelement(2, "symphiq-priority-badge", 9);
101615
- i0.ɵɵelementStart(3, "span", 10);
101616
- i0.ɵɵtext(4);
101617
- i0.ɵɵelementEnd()();
101618
- i0.ɵɵelementStart(5, "p", 11);
101619
- i0.ɵɵtext(6);
101620
- i0.ɵɵelementEnd()();
101621
- } if (rf & 2) {
101622
- const item_r4 = ctx.$implicit;
101623
- const ctx_r1 = i0.ɵɵnextContext(2);
101624
- i0.ɵɵproperty("ngClass", ctx_r1.cardClasses());
101625
- i0.ɵɵadvance(2);
101626
- i0.ɵɵproperty("priority", item_r4.priority)("viewMode", ctx_r1.viewMode());
101627
- i0.ɵɵadvance();
101628
- i0.ɵɵproperty("ngClass", ctx_r1.timeframeClasses());
101629
- i0.ɵɵadvance();
101630
- i0.ɵɵtextInterpolate1(" ", item_r4.timeframe, " ");
101631
- i0.ɵɵadvance();
101632
- i0.ɵɵproperty("ngClass", ctx_r1.actionTextClasses());
101633
- i0.ɵɵadvance();
101634
- i0.ɵɵtextInterpolate1(" ", item_r4.action, " ");
101635
- } }
101636
- function PriorityActionsStripComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
101637
- const _r5 = i0.ɵɵgetCurrentView();
101638
- i0.ɵɵelementStart(0, "button", 12);
101639
- i0.ɵɵlistener("click", function PriorityActionsStripComponent_Conditional_0_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.viewAllClicked.emit()); });
101640
- i0.ɵɵelementStart(1, "span", 13);
101641
- i0.ɵɵtext(2);
101642
- i0.ɵɵelementEnd()();
101643
- } if (rf & 2) {
101644
- const ctx_r1 = i0.ɵɵnextContext(2);
101645
- i0.ɵɵproperty("ngClass", ctx_r1.moreCardClasses());
101646
- i0.ɵɵadvance(2);
101647
- i0.ɵɵtextInterpolate1("+", ctx_r1.items().length - ctx_r1.maxDisplay(), " more");
101648
- } }
101649
101612
  function PriorityActionsStripComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
101650
101613
  const _r1 = i0.ɵɵgetCurrentView();
101651
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h4", 2);
101652
- i0.ɵɵtext(3, " Priority Actions ");
101614
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div")(3, "h4", 2);
101615
+ i0.ɵɵtext(4, " Priority Actions ");
101653
101616
  i0.ɵɵelementEnd();
101654
- i0.ɵɵelementStart(4, "button", 3);
101655
- i0.ɵɵlistener("click", function PriorityActionsStripComponent_Conditional_0_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.viewAllClicked.emit()); });
101656
- i0.ɵɵtext(5);
101657
- i0.ɵɵelementEnd()();
101658
- i0.ɵɵelementStart(6, "div", 4);
101659
- i0.ɵɵrepeaterCreate(7, PriorityActionsStripComponent_Conditional_0_For_8_Template, 7, 7, "button", 5, i0.ɵɵrepeaterTrackByIndex);
101660
- i0.ɵɵconditionalCreate(9, PriorityActionsStripComponent_Conditional_0_Conditional_9_Template, 3, 2, "button", 6);
101617
+ i0.ɵɵelementStart(5, "p", 3);
101618
+ i0.ɵɵtext(6);
101661
101619
  i0.ɵɵelementEnd()();
101620
+ i0.ɵɵelementStart(7, "button", 4);
101621
+ i0.ɵɵlistener("click", function PriorityActionsStripComponent_Conditional_0_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.viewAllClicked.emit()); });
101622
+ i0.ɵɵtext(8, " View Details ");
101623
+ i0.ɵɵnamespaceSVG();
101624
+ i0.ɵɵelementStart(9, "svg", 5);
101625
+ i0.ɵɵelement(10, "path", 6);
101626
+ i0.ɵɵelementEnd()()()();
101662
101627
  } if (rf & 2) {
101663
101628
  const ctx_r1 = i0.ɵɵnextContext();
101664
101629
  i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
101665
- i0.ɵɵadvance(2);
101630
+ i0.ɵɵadvance(3);
101666
101631
  i0.ɵɵproperty("ngClass", ctx_r1.titleClasses());
101667
101632
  i0.ɵɵadvance(2);
101668
- i0.ɵɵproperty("ngClass", ctx_r1.viewAllClasses());
101633
+ i0.ɵɵproperty("ngClass", ctx_r1.countClasses());
101669
101634
  i0.ɵɵadvance();
101670
- i0.ɵɵtextInterpolate1(" View All (", ctx_r1.items().length, ") ");
101671
- i0.ɵɵadvance(2);
101672
- i0.ɵɵrepeater(ctx_r1.displayItems());
101673
- i0.ɵɵadvance(2);
101674
- i0.ɵɵconditional(ctx_r1.items().length > ctx_r1.maxDisplay() ? 9 : -1);
101635
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.items().length, " ");
101636
+ i0.ɵɵadvance();
101637
+ i0.ɵɵproperty("ngClass", ctx_r1.viewDetailsClasses());
101675
101638
  } }
101676
101639
  class PriorityActionsStripComponent {
101677
101640
  constructor() {
101678
101641
  this.items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
101679
101642
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
101680
- this.maxDisplay = input(4, ...(ngDevMode ? [{ debugName: "maxDisplay" }] : []));
101681
- this.itemClicked = output();
101682
101643
  this.viewAllClicked = output();
101683
101644
  this.isLight = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLight" }] : []));
101684
- this.displayItems = computed(() => this.items().slice(0, this.maxDisplay()), ...(ngDevMode ? [{ debugName: "displayItems" }] : []));
101685
101645
  this.containerClasses = computed(() => this.isLight()
101686
101646
  ? 'bg-slate-50 border border-slate-200'
101687
- : 'bg-slate-700/30 border border-slate-600/50', ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
101688
- this.titleClasses = computed(() => this.isLight() ? 'text-slate-600' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
101689
- this.viewAllClasses = computed(() => this.isLight()
101690
- ? 'bg-indigo-100 text-indigo-700 hover:bg-indigo-200'
101691
- : 'bg-indigo-500/20 text-indigo-300 hover:bg-indigo-500/30', ...(ngDevMode ? [{ debugName: "viewAllClasses" }] : []));
101692
- this.cardClasses = computed(() => this.isLight()
101693
- ? 'bg-white border border-slate-200 hover:border-slate-300 hover:shadow-md'
101694
- : 'bg-slate-800/50 border border-slate-600/50 hover:border-slate-500/50', ...(ngDevMode ? [{ debugName: "cardClasses" }] : []));
101695
- this.timeframeClasses = computed(() => this.isLight() ? 'text-slate-500' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "timeframeClasses" }] : []));
101696
- this.actionTextClasses = computed(() => this.isLight() ? 'text-slate-700' : 'text-slate-300', ...(ngDevMode ? [{ debugName: "actionTextClasses" }] : []));
101697
- this.moreCardClasses = computed(() => this.isLight()
101698
- ? 'bg-slate-100 border border-slate-200 text-slate-600 hover:bg-slate-200'
101699
- : 'bg-slate-700/50 border border-slate-600/50 text-slate-400 hover:bg-slate-700', ...(ngDevMode ? [{ debugName: "moreCardClasses" }] : []));
101647
+ : 'bg-slate-800/50 border border-slate-700/50', ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
101648
+ this.titleClasses = computed(() => this.isLight() ? 'text-slate-500' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
101649
+ this.countClasses = computed(() => this.isLight() ? 'text-slate-900' : 'text-white', ...(ngDevMode ? [{ debugName: "countClasses" }] : []));
101650
+ this.viewDetailsClasses = computed(() => this.isLight()
101651
+ ? 'bg-indigo-600 text-white hover:bg-indigo-700 hover:shadow-indigo-200'
101652
+ : 'bg-indigo-500 text-white hover:bg-indigo-400 hover:shadow-indigo-500/30', ...(ngDevMode ? [{ debugName: "viewDetailsClasses" }] : []));
101700
101653
  }
101701
101654
  static { this.ɵfac = function PriorityActionsStripComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PriorityActionsStripComponent)(); }; }
101702
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PriorityActionsStripComponent, selectors: [["symphiq-priority-actions-strip"]], inputs: { items: [1, "items"], viewMode: [1, "viewMode"], maxDisplay: [1, "maxDisplay"] }, outputs: { itemClicked: "itemClicked", viewAllClicked: "viewAllClicked" }, decls: 1, vars: 1, consts: [[1, "mt-6", "rounded-xl", "p-4", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-3"], [1, "text-sm", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], ["type", "button", 1, "text-xs", "font-medium", "px-3", "py-1", "rounded-full", "transition-colors", "cursor-pointer", 3, "click", "ngClass"], [1, "flex", "gap-3", "overflow-x-auto", "pb-2", "-mx-1", "px-1"], ["type", "button", 1, "flex-shrink-0", "w-64", "p-3", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "cursor-pointer", 3, "ngClass"], ["type", "button", 1, "flex-shrink-0", "w-32", "p-3", "rounded-lg", "flex", "items-center", "justify-center", "cursor-pointer", 3, "ngClass"], ["type", "button", 1, "flex-shrink-0", "w-64", "p-3", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "cursor-pointer", 3, "click", "ngClass"], [1, "flex", "items-start", "gap-2", "mb-2"], [3, "priority", "viewMode"], [1, "text-xs", "ml-auto", "whitespace-nowrap", 3, "ngClass"], [1, "text-sm", "line-clamp-2", 3, "ngClass"], ["type", "button", 1, "flex-shrink-0", "w-32", "p-3", "rounded-lg", "flex", "items-center", "justify-center", "cursor-pointer", 3, "click", "ngClass"], [1, "text-sm", "font-medium"]], template: function PriorityActionsStripComponent_Template(rf, ctx) { if (rf & 1) {
101703
- i0.ɵɵconditionalCreate(0, PriorityActionsStripComponent_Conditional_0_Template, 10, 5, "div", 0);
101655
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PriorityActionsStripComponent, selectors: [["symphiq-priority-actions-strip"]], inputs: { items: [1, "items"], viewMode: [1, "viewMode"] }, outputs: { viewAllClicked: "viewAllClicked" }, decls: 1, vars: 1, consts: [[1, "rounded-xl", "p-6", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-4xl", "font-bold", 3, "ngClass"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "cursor-pointer", "hover:scale-105", "hover:shadow-lg", 3, "click", "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", "M9 5l7 7-7 7"]], template: function PriorityActionsStripComponent_Template(rf, ctx) { if (rf & 1) {
101656
+ i0.ɵɵconditionalCreate(0, PriorityActionsStripComponent_Conditional_0_Template, 11, 5, "div", 0);
101704
101657
  } if (rf & 2) {
101705
101658
  i0.ɵɵconditional(ctx.items().length > 0 ? 0 : -1);
101706
- } }, dependencies: [CommonModule, i1$1.NgClass, PriorityBadgeComponent], styles: [".line-clamp-2[_ngcontent-%COMP%]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}"], changeDetection: 0 }); }
101659
+ } }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
101707
101660
  }
101708
101661
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PriorityActionsStripComponent, [{
101709
101662
  type: Component,
101710
- args: [{ selector: 'symphiq-priority-actions-strip', standalone: true, imports: [CommonModule, PriorityBadgeComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
101663
+ args: [{
101664
+ selector: 'symphiq-priority-actions-strip',
101665
+ standalone: true,
101666
+ imports: [CommonModule],
101667
+ changeDetection: ChangeDetectionStrategy.OnPush,
101668
+ template: `
101711
101669
  @if (items().length > 0) {
101712
- <div [ngClass]="containerClasses()" class="mt-6 rounded-xl p-4">
101713
- <div class="flex items-center justify-between mb-3">
101714
- <h4 [ngClass]="titleClasses()" class="text-sm font-semibold uppercase tracking-wider">
101715
- Priority Actions
101716
- </h4>
101670
+ <div [ngClass]="containerClasses()" class="rounded-xl p-6">
101671
+ <div class="flex items-center justify-between">
101672
+ <div>
101673
+ <h4 [ngClass]="titleClasses()" class="text-xs font-semibold uppercase tracking-wider mb-1">
101674
+ Priority Actions
101675
+ </h4>
101676
+ <p [ngClass]="countClasses()" class="text-4xl font-bold">
101677
+ {{ items().length }}
101678
+ </p>
101679
+ </div>
101680
+
101717
101681
  <button
101718
101682
  type="button"
101719
101683
  (click)="viewAllClicked.emit()"
101720
- [ngClass]="viewAllClasses()"
101721
- class="text-xs font-medium px-3 py-1 rounded-full transition-colors cursor-pointer">
101722
- View All ({{ items().length }})
101684
+ [ngClass]="viewDetailsClasses()"
101685
+ class="flex items-center gap-2 px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 cursor-pointer hover:scale-105 hover:shadow-lg">
101686
+ View Details
101687
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
101688
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
101689
+ </svg>
101723
101690
  </button>
101724
101691
  </div>
101725
-
101726
- <div class="flex gap-3 overflow-x-auto pb-2 -mx-1 px-1">
101727
- @for (item of displayItems(); track $index) {
101728
- <button
101729
- type="button"
101730
- (click)="itemClicked.emit(item)"
101731
- [ngClass]="cardClasses()"
101732
- class="flex-shrink-0 w-64 p-3 rounded-lg text-left transition-all hover:scale-[1.02] cursor-pointer">
101733
- <div class="flex items-start gap-2 mb-2">
101734
- <symphiq-priority-badge [priority]="item.priority" [viewMode]="viewMode()" />
101735
- <span [ngClass]="timeframeClasses()" class="text-xs ml-auto whitespace-nowrap">
101736
- {{ item.timeframe }}
101737
- </span>
101738
- </div>
101739
- <p [ngClass]="actionTextClasses()" class="text-sm line-clamp-2">
101740
- {{ item.action }}
101741
- </p>
101742
- </button>
101743
- }
101744
-
101745
- @if (items().length > maxDisplay()) {
101746
- <button
101747
- type="button"
101748
- (click)="viewAllClicked.emit()"
101749
- [ngClass]="moreCardClasses()"
101750
- class="flex-shrink-0 w-32 p-3 rounded-lg flex items-center justify-center cursor-pointer">
101751
- <span class="text-sm font-medium">+{{ items().length - maxDisplay() }} more</span>
101752
- </button>
101753
- }
101754
- </div>
101755
101692
  </div>
101756
101693
  }
101757
- `, styles: [".line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n"] }]
101758
- }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], maxDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDisplay", required: false }] }], itemClicked: [{ type: i0.Output, args: ["itemClicked"] }], viewAllClicked: [{ type: i0.Output, args: ["viewAllClicked"] }] }); })();
101759
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PriorityActionsStripComponent, { className: "PriorityActionsStripComponent", filePath: "lib/components/shared/priority-actions-strip.component.ts", lineNumber: 78 }); })();
101694
+ `
101695
+ }]
101696
+ }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], viewAllClicked: [{ type: i0.Output, args: ["viewAllClicked"] }] }); })();
101697
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PriorityActionsStripComponent, { className: "PriorityActionsStripComponent", filePath: "lib/components/shared/priority-actions-strip.component.ts", lineNumber: 48 }); })();
101760
101698
 
101761
101699
  function UnifiedExecutiveSummaryComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
101762
101700
  i0.ɵɵelement(0, "symphiq-grade-badge", 7);
@@ -101768,7 +101706,7 @@ function UnifiedExecutiveSummaryComponent_Conditional_0_Conditional_9_Template(r
101768
101706
  function UnifiedExecutiveSummaryComponent_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
101769
101707
  const _r3 = i0.ɵɵgetCurrentView();
101770
101708
  i0.ɵɵelementStart(0, "symphiq-priority-actions-strip", 11);
101771
- i0.ɵɵlistener("itemClicked", function UnifiedExecutiveSummaryComponent_Conditional_0_Conditional_12_Template_symphiq_priority_actions_strip_itemClicked_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.priorityActionItemClick.emit($event)); })("viewAllClicked", function UnifiedExecutiveSummaryComponent_Conditional_0_Conditional_12_Template_symphiq_priority_actions_strip_viewAllClicked_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.viewAllPriorityActionsClick.emit()); });
101709
+ i0.ɵɵlistener("viewAllClicked", function UnifiedExecutiveSummaryComponent_Conditional_0_Conditional_12_Template_symphiq_priority_actions_strip_viewAllClicked_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.viewAllPriorityActionsClick.emit()); });
101772
101710
  i0.ɵɵelementEnd();
101773
101711
  } if (rf & 2) {
101774
101712
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -101813,7 +101751,6 @@ class UnifiedExecutiveSummaryComponent {
101813
101751
  this.shopCounts = input({ analyses: 0, goals: 0 }, ...(ngDevMode ? [{ debugName: "shopCounts" }] : []));
101814
101752
  this.focusAreaCounts = input({ analyses: 0, goals: 0 }, ...(ngDevMode ? [{ debugName: "focusAreaCounts" }] : []));
101815
101753
  this.metricCounts = input({ analyses: 0, goals: 0 }, ...(ngDevMode ? [{ debugName: "metricCounts" }] : []));
101816
- this.priorityActionItemClick = output();
101817
101754
  this.viewAllPriorityActionsClick = output();
101818
101755
  this.priorityActionItems = computed(() => {
101819
101756
  const s = this.summary();
@@ -101830,7 +101767,7 @@ class UnifiedExecutiveSummaryComponent {
101830
101767
  this.textClasses = computed(() => this.isLightMode() ? 'text-slate-700' : 'text-slate-300', ...(ngDevMode ? [{ debugName: "textClasses" }] : []));
101831
101768
  }
101832
101769
  static { this.ɵfac = function UnifiedExecutiveSummaryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedExecutiveSummaryComponent)(); }; }
101833
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedExecutiveSummaryComponent, selectors: [["symphiq-unified-executive-summary"]], inputs: { summary: [1, "summary"], viewMode: [1, "viewMode"], shopCounts: [1, "shopCounts"], focusAreaCounts: [1, "focusAreaCounts"], metricCounts: [1, "metricCounts"] }, outputs: { priorityActionItemClick: "priorityActionItemClick", viewAllPriorityActionsClick: "viewAllPriorityActionsClick" }, decls: 1, vars: 1, consts: [["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "flex", "flex-col", "gap-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"], ["title", "Synthesis Overview", 3, "viewMode", "narrative", "napkinVisual"], [3, "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], [3, "items", "viewMode"], [3, "itemClicked", "viewAllClicked", "items", "viewMode"]], template: function UnifiedExecutiveSummaryComponent_Template(rf, ctx) { if (rf & 1) {
101770
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedExecutiveSummaryComponent, selectors: [["symphiq-unified-executive-summary"]], inputs: { summary: [1, "summary"], viewMode: [1, "viewMode"], shopCounts: [1, "shopCounts"], focusAreaCounts: [1, "focusAreaCounts"], metricCounts: [1, "metricCounts"] }, outputs: { viewAllPriorityActionsClick: "viewAllPriorityActionsClick" }, decls: 1, vars: 1, consts: [["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "flex", "flex-col", "gap-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"], ["title", "Synthesis Overview", 3, "viewMode", "narrative", "napkinVisual"], [3, "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], [3, "items", "viewMode"], [3, "viewAllClicked", "items", "viewMode"]], template: function UnifiedExecutiveSummaryComponent_Template(rf, ctx) { if (rf & 1) {
101834
101771
  i0.ɵɵconditionalCreate(0, UnifiedExecutiveSummaryComponent_Conditional_0_Template, 13, 13, "section", 0);
101835
101772
  } if (rf & 2) {
101836
101773
  let tmp_0_0;
@@ -101894,7 +101831,6 @@ class UnifiedExecutiveSummaryComponent {
101894
101831
  <symphiq-priority-actions-strip
101895
101832
  [items]="priorityActionItems()"
101896
101833
  [viewMode]="viewMode()"
101897
- (itemClicked)="priorityActionItemClick.emit($event)"
101898
101834
  (viewAllClicked)="viewAllPriorityActionsClick.emit()"
101899
101835
  />
101900
101836
  }
@@ -101904,8 +101840,8 @@ class UnifiedExecutiveSummaryComponent {
101904
101840
  }
101905
101841
  `
101906
101842
  }]
101907
- }], null, { summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], shopCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopCounts", required: false }] }], focusAreaCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaCounts", required: false }] }], metricCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricCounts", required: false }] }], priorityActionItemClick: [{ type: i0.Output, args: ["priorityActionItemClick"] }], viewAllPriorityActionsClick: [{ type: i0.Output, args: ["viewAllPriorityActionsClick"] }] }); })();
101908
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedExecutiveSummaryComponent, { className: "UnifiedExecutiveSummaryComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-executive-summary.component.ts", lineNumber: 75 }); })();
101843
+ }], null, { summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], shopCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopCounts", required: false }] }], focusAreaCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaCounts", required: false }] }], metricCounts: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricCounts", required: false }] }], viewAllPriorityActionsClick: [{ type: i0.Output, args: ["viewAllPriorityActionsClick"] }] }); })();
101844
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedExecutiveSummaryComponent, { className: "UnifiedExecutiveSummaryComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-executive-summary.component.ts", lineNumber: 74 }); })();
101909
101845
 
101910
101846
  const _c0$b = a0 => ({ name: "calendar", source: a0 });
101911
101847
  const _forTrack0$b = ($index, $item) => $item.id;
@@ -102970,7 +102906,7 @@ class UnifiedNextStepsComponent {
102970
102906
  return FocusAreaDomainEnumUtil.subtitle(domain);
102971
102907
  }
102972
102908
  static { this.ɵfac = function UnifiedNextStepsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedNextStepsComponent)(); }; }
102973
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedNextStepsComponent, selectors: [["symphiq-unified-next-steps"]], inputs: { steps: [1, "steps"], viewMode: [1, "viewMode"], goals: [1, "goals"] }, outputs: { goalClick: "goalClick" }, decls: 1, vars: 1, consts: [["id", "section-next-steps", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Next Steps", 3, "icon", "viewMode"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-6"], [1, "rounded-2xl", "p-6", "shadow-lg", "transition-all", "hover:shadow-xl", 3, "ngClass"], [1, "flex", "items-start", "gap-4", "mb-4"], [1, "w-10", "h-10", "rounded-full", "flex", "items-center", "justify-center", "text-lg", "font-bold", "flex-shrink-0", 3, "ngClass"], [1, "flex-1"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", 3, "ngClass"], [1, "text-base", "font-semibold", "line-clamp-2", 3, "ngClass"], [1, "text-sm", "mb-4", "line-clamp-3", 3, "ngClass"], [1, "mt-4", "pt-4", "border-t", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2", "text-sm", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "mt-0.5", "flex-shrink-0"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"], [1, "line-clamp-2"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "click", "ngClass"], [1, "text-sm", "font-medium", "line-clamp-1"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "flex-shrink-0"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "flex", "flex-wrap", "gap-2"], ["tooltipPosition", "top", 1, "px-2", "py-1", "rounded-md", "text-xs", "font-medium", 3, "ngClass", "libSymphiqTooltip"]], template: function UnifiedNextStepsComponent_Template(rf, ctx) { if (rf & 1) {
102909
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedNextStepsComponent, selectors: [["symphiq-unified-next-steps"]], inputs: { steps: [1, "steps"], viewMode: [1, "viewMode"], goals: [1, "goals"] }, outputs: { goalClick: "goalClick" }, decls: 1, vars: 1, consts: [["id", "section-next-steps", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Next Steps", 3, "icon", "viewMode"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-6"], [1, "rounded-2xl", "p-6", "shadow-lg", "transition-all", "hover:shadow-xl", 3, "ngClass"], [1, "flex", "items-start", "gap-4", "mb-4"], [1, "w-10", "h-10", "rounded-full", "flex", "items-center", "justify-center", "text-lg", "font-bold", "flex-shrink-0", 3, "ngClass"], [1, "flex-1"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", 3, "ngClass"], [1, "text-base", "font-semibold", 3, "ngClass"], [1, "text-sm", "mb-4", "line-clamp-3", 3, "ngClass"], [1, "mt-4", "pt-4", "border-t", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2", "text-sm", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "mt-0.5", "flex-shrink-0"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"], [1, "line-clamp-2"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "click", "ngClass"], [1, "text-sm", "font-medium", "line-clamp-1"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "flex-shrink-0"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "flex", "flex-wrap", "gap-2"], ["tooltipPosition", "top", 1, "px-2", "py-1", "rounded-md", "text-xs", "font-medium", 3, "ngClass", "libSymphiqTooltip"]], template: function UnifiedNextStepsComponent_Template(rf, ctx) { if (rf & 1) {
102974
102910
  i0.ɵɵconditionalCreate(0, UnifiedNextStepsComponent_Conditional_0_Template, 6, 8, "section", 0);
102975
102911
  } if (rf & 2) {
102976
102912
  i0.ɵɵconditional(ctx.steps().length > 0 ? 0 : -1);
@@ -103002,7 +102938,7 @@ class UnifiedNextStepsComponent {
103002
102938
  <div [ngClass]="getCategoryClasses(idx)" class="text-xs font-semibold uppercase mb-1">
103003
102939
  {{ getCategory(idx) }}
103004
102940
  </div>
103005
- <h4 [ngClass]="titleClasses()" class="text-base font-semibold line-clamp-2">
102941
+ <h4 [ngClass]="titleClasses()" class="text-base font-semibold">
103006
102942
  {{ step.title }}
103007
102943
  </h4>
103008
102944
  </div>
@@ -103168,32 +103104,32 @@ class SynthesisConfidenceSectionComponent {
103168
103104
  const _forTrack0$8 = ($index, $item) => $item.analysisId;
103169
103105
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
103170
103106
  i0.ɵɵelementStart(0, "div", 8);
103171
- i0.ɵɵelement(1, "div", 16);
103107
+ i0.ɵɵelement(1, "div", 19);
103172
103108
  i0.ɵɵelementEnd();
103173
103109
  } }
103174
103110
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
103175
103111
  i0.ɵɵelementStart(0, "div", 9);
103176
103112
  i0.ɵɵnamespaceSVG();
103177
- i0.ɵɵelementStart(1, "svg", 17);
103178
- i0.ɵɵelement(2, "path", 18);
103113
+ i0.ɵɵelementStart(1, "svg", 20);
103114
+ i0.ɵɵelement(2, "path", 21);
103179
103115
  i0.ɵɵelementEnd()();
103180
103116
  } }
103181
103117
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Case_5_Template(rf, ctx) { if (rf & 1) {
103182
103118
  i0.ɵɵnamespaceSVG();
103183
103119
  i0.ɵɵelementStart(0, "svg", 2);
103184
- i0.ɵɵelement(1, "path", 19);
103120
+ i0.ɵɵelement(1, "path", 22);
103185
103121
  i0.ɵɵelementEnd();
103186
103122
  } }
103187
103123
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Case_6_Template(rf, ctx) { if (rf & 1) {
103188
103124
  i0.ɵɵnamespaceSVG();
103189
103125
  i0.ɵɵelementStart(0, "svg", 2);
103190
- i0.ɵɵelement(1, "path", 20);
103126
+ i0.ɵɵelement(1, "path", 23);
103191
103127
  i0.ɵɵelementEnd();
103192
103128
  } }
103193
103129
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Case_7_Template(rf, ctx) { if (rf & 1) {
103194
103130
  i0.ɵɵnamespaceSVG();
103195
103131
  i0.ɵɵelementStart(0, "svg", 2);
103196
- i0.ɵɵelement(1, "path", 21);
103132
+ i0.ɵɵelement(1, "path", 24);
103197
103133
  i0.ɵɵelementEnd();
103198
103134
  } }
103199
103135
  function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
@@ -103220,6 +103156,11 @@ function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template(rf, ct
103220
103156
  i0.ɵɵelementEnd();
103221
103157
  i0.ɵɵelementStart(14, "div", 15);
103222
103158
  i0.ɵɵtext(15);
103159
+ i0.ɵɵelementEnd()();
103160
+ i0.ɵɵelementStart(16, "div", 16);
103161
+ i0.ɵɵnamespaceSVG();
103162
+ i0.ɵɵelementStart(17, "svg", 17);
103163
+ i0.ɵɵelement(18, "path", 18);
103223
103164
  i0.ɵɵelementEnd()()()();
103224
103165
  } if (rf & 2) {
103225
103166
  let tmp_15_0;
@@ -103248,6 +103189,8 @@ function SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template(rf, ct
103248
103189
  i0.ɵɵproperty("ngClass", ctx_r2.sourceWeightClasses());
103249
103190
  i0.ɵɵadvance();
103250
103191
  i0.ɵɵtextInterpolate1(" ", ((source_r2.contributionWeight ?? 0) * 100).toFixed(0), "% contribution ");
103192
+ i0.ɵɵadvance();
103193
+ i0.ɵɵproperty("ngClass", ctx_r2.chevronClasses());
103251
103194
  } }
103252
103195
  function SourceAnalysisTraceabilityComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
103253
103196
  i0.ɵɵelementStart(0, "div", 0)(1, "h4", 1);
@@ -103260,7 +103203,7 @@ function SourceAnalysisTraceabilityComponent_Conditional_0_Template(rf, ctx) { i
103260
103203
  i0.ɵɵnamespaceHTML();
103261
103204
  i0.ɵɵelement(5, "symphiq-synthesis-confidence-section", 4);
103262
103205
  i0.ɵɵelementStart(6, "div", 5);
103263
- i0.ɵɵrepeaterCreate(7, SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template, 16, 12, "button", 6, _forTrack0$8);
103206
+ i0.ɵɵrepeaterCreate(7, SourceAnalysisTraceabilityComponent_Conditional_0_For_8_Template, 19, 13, "button", 6, _forTrack0$8);
103264
103207
  i0.ɵɵelementEnd()();
103265
103208
  } if (rf & 2) {
103266
103209
  let tmp_3_0;
@@ -103326,6 +103269,7 @@ class SourceAnalysisTraceabilityComponent {
103326
103269
  this.sourceTypeClasses = computed(() => this.isLightMode() ? 'text-slate-500' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "sourceTypeClasses" }] : []));
103327
103270
  this.sourceTitleClasses = computed(() => this.isLightMode() ? 'text-slate-900' : 'text-white', ...(ngDevMode ? [{ debugName: "sourceTitleClasses" }] : []));
103328
103271
  this.sourceWeightClasses = computed(() => this.isLightMode() ? 'text-slate-500' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "sourceWeightClasses" }] : []));
103272
+ this.chevronClasses = computed(() => this.isLightMode() ? 'text-slate-400' : 'text-slate-500', ...(ngDevMode ? [{ debugName: "chevronClasses" }] : []));
103329
103273
  }
103330
103274
  onSourceAnalysisClick(source) {
103331
103275
  this.sourceAnalysisClick.emit(source);
@@ -103339,7 +103283,7 @@ class SourceAnalysisTraceabilityComponent {
103339
103283
  }
103340
103284
  }
103341
103285
  static { this.ɵfac = function SourceAnalysisTraceabilityComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SourceAnalysisTraceabilityComponent)(); }; }
103342
- 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) {
103286
+ 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) {
103343
103287
  i0.ɵɵconditionalCreate(0, SourceAnalysisTraceabilityComponent_Conditional_0_Template, 9, 6, "div", 0);
103344
103288
  } if (rf & 2) {
103345
103289
  let tmp_0_0;
@@ -103387,7 +103331,7 @@ class SourceAnalysisTraceabilityComponent {
103387
103331
  </svg>
103388
103332
  </div>
103389
103333
  }
103390
- <div class="flex items-start gap-3">
103334
+ <div class="flex items-center gap-3">
103391
103335
  <div [ngClass]="sourceIconClasses()(source)" class="w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0">
103392
103336
  @switch (source.analysisType) {
103393
103337
  @case (ProfileAnalysisTypeEnum.SHOP) {
@@ -103421,6 +103365,11 @@ class SourceAnalysisTraceabilityComponent {
103421
103365
  {{ ((source.contributionWeight ?? 0) * 100).toFixed(0) }}% contribution
103422
103366
  </div>
103423
103367
  </div>
103368
+ <div [ngClass]="chevronClasses()" class="flex-shrink-0">
103369
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
103370
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
103371
+ </svg>
103372
+ </div>
103424
103373
  </div>
103425
103374
  </button>
103426
103375
  }
@@ -103430,11 +103379,11 @@ class SourceAnalysisTraceabilityComponent {
103430
103379
  `
103431
103380
  }]
103432
103381
  }], 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"] }] }); })();
103433
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SourceAnalysisTraceabilityComponent, { className: "SourceAnalysisTraceabilityComponent", filePath: "lib/components/shared/source-analysis-traceability.component.ts", lineNumber: 100 }); })();
103382
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SourceAnalysisTraceabilityComponent, { className: "SourceAnalysisTraceabilityComponent", filePath: "lib/components/shared/source-analysis-traceability.component.ts", lineNumber: 105 }); })();
103434
103383
 
103435
103384
  function UnifiedGoalDetailModalContentComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
103436
103385
  i0.ɵɵelementStart(0, "div", 3);
103437
- i0.ɵɵelement(1, "symphiq-thematic-category-badge", 12);
103386
+ i0.ɵɵelement(1, "symphiq-thematic-category-badge", 11);
103438
103387
  i0.ɵɵelementEnd();
103439
103388
  } if (rf & 2) {
103440
103389
  const ctx_r0 = i0.ɵɵnextContext();
@@ -103453,7 +103402,7 @@ function UnifiedGoalDetailModalContentComponent_Conditional_4_Template(rf, ctx)
103453
103402
  } }
103454
103403
  function UnifiedGoalDetailModalContentComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
103455
103404
  i0.ɵɵelementStart(0, "div", 5);
103456
- i0.ɵɵelement(1, "symphiq-napkin-visual-placeholder", 13);
103405
+ i0.ɵɵelement(1, "symphiq-napkin-visual-placeholder", 12);
103457
103406
  i0.ɵɵelementEnd();
103458
103407
  } if (rf & 2) {
103459
103408
  const ctx_r0 = i0.ɵɵnextContext();
@@ -103462,16 +103411,17 @@ function UnifiedGoalDetailModalContentComponent_Conditional_5_Template(rf, ctx)
103462
103411
  } }
103463
103412
  function UnifiedGoalDetailModalContentComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
103464
103413
  const _r2 = i0.ɵɵgetCurrentView();
103465
- i0.ɵɵelementStart(0, "symphiq-show-objectives-button", 14);
103466
- 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()); });
103467
- i0.ɵɵelementEnd();
103414
+ i0.ɵɵelementStart(0, "div", 5)(1, "symphiq-show-objectives-button", 13);
103415
+ 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()); });
103416
+ i0.ɵɵelementEnd()();
103468
103417
  } if (rf & 2) {
103469
103418
  const ctx_r0 = i0.ɵɵnextContext();
103419
+ i0.ɵɵadvance();
103470
103420
  i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("subLabel", "View " + ctx_r0.goal().objectives.length + " objectives");
103471
103421
  } }
103472
103422
  function UnifiedGoalDetailModalContentComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
103473
103423
  const _r3 = i0.ɵɵgetCurrentView();
103474
- i0.ɵɵelementStart(0, "symphiq-related-content-button", 15);
103424
+ i0.ɵɵelementStart(0, "symphiq-related-content-button", 14);
103475
103425
  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()); });
103476
103426
  i0.ɵɵelementEnd();
103477
103427
  } if (rf & 2) {
@@ -103479,7 +103429,7 @@ function UnifiedGoalDetailModalContentComponent_Conditional_9_Template(rf, ctx)
103479
103429
  i0.ɵɵproperty("count", ctx_r0.contributingMetricsCount())("svgPath", ctx_r0.metricsIconPath)("viewMode", ctx_r0.viewMode());
103480
103430
  } }
103481
103431
  function UnifiedGoalDetailModalContentComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
103482
- i0.ɵɵelement(0, "symphiq-related-content-button", 10);
103432
+ i0.ɵɵelement(0, "symphiq-related-content-button", 9);
103483
103433
  } if (rf & 2) {
103484
103434
  const ctx_r0 = i0.ɵɵnextContext();
103485
103435
  i0.ɵɵproperty("count", ctx_r0.contributingFocusAreasCount())("svgPath", ctx_r0.focusAreaIconPath)("viewMode", ctx_r0.viewMode())("showChevron", false)("tooltipContent", ctx_r0.focusAreasTooltipContent());
@@ -103540,18 +103490,18 @@ class UnifiedGoalDetailModalContentComponent {
103540
103490
  this.contributingMetricsClick.emit();
103541
103491
  }
103542
103492
  static { this.ɵfac = function UnifiedGoalDetailModalContentComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedGoalDetailModalContentComponent)(); }; }
103543
- 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-3"], [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"], [3, "buttonClick", "viewMode", "subLabel"], ["label", "CONTRIBUTING METRIC", "labelPlural", "CONTRIBUTING METRICS", 3, "buttonClicked", "count", "svgPath", "viewMode"]], template: function UnifiedGoalDetailModalContentComponent_Template(rf, ctx) { if (rf & 1) {
103493
+ 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) {
103544
103494
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
103545
103495
  i0.ɵɵconditionalCreate(3, UnifiedGoalDetailModalContentComponent_Conditional_3_Template, 2, 2, "div", 3);
103546
103496
  i0.ɵɵconditionalCreate(4, UnifiedGoalDetailModalContentComponent_Conditional_4_Template, 2, 2, "p", 4);
103547
103497
  i0.ɵɵconditionalCreate(5, UnifiedGoalDetailModalContentComponent_Conditional_5_Template, 2, 2, "div", 5);
103548
- i0.ɵɵconditionalCreate(6, UnifiedGoalDetailModalContentComponent_Conditional_6_Template, 1, 2, "symphiq-show-objectives-button", 6);
103498
+ i0.ɵɵconditionalCreate(6, UnifiedGoalDetailModalContentComponent_Conditional_6_Template, 2, 2, "div", 5);
103549
103499
  i0.ɵɵelementEnd();
103550
- i0.ɵɵelementStart(7, "div", 7);
103551
- i0.ɵɵelement(8, "symphiq-expected-impact-section", 8);
103552
- i0.ɵɵconditionalCreate(9, UnifiedGoalDetailModalContentComponent_Conditional_9_Template, 1, 3, "symphiq-related-content-button", 9);
103553
- i0.ɵɵconditionalCreate(10, UnifiedGoalDetailModalContentComponent_Conditional_10_Template, 1, 5, "symphiq-related-content-button", 10);
103554
- i0.ɵɵelementStart(11, "symphiq-source-analysis-traceability", 11);
103500
+ i0.ɵɵelementStart(7, "div", 6);
103501
+ i0.ɵɵelement(8, "symphiq-expected-impact-section", 7);
103502
+ i0.ɵɵconditionalCreate(9, UnifiedGoalDetailModalContentComponent_Conditional_9_Template, 1, 3, "symphiq-related-content-button", 8);
103503
+ i0.ɵɵconditionalCreate(10, UnifiedGoalDetailModalContentComponent_Conditional_10_Template, 1, 5, "symphiq-related-content-button", 9);
103504
+ i0.ɵɵelementStart(11, "symphiq-source-analysis-traceability", 10);
103555
103505
  i0.ɵɵlistener("sourceAnalysisClick", function UnifiedGoalDetailModalContentComponent_Template_symphiq_source_analysis_traceability_sourceAnalysisClick_11_listener($event) { return ctx.onSourceAnalysisClick($event); });
103556
103506
  i0.ɵɵelementEnd()()()();
103557
103507
  } if (rf & 2) {
@@ -103600,21 +103550,23 @@ class UnifiedGoalDetailModalContentComponent {
103600
103550
  }
103601
103551
  <!-- Napkin Visual -->
103602
103552
  @if (goal().visual) {
103603
- <div class="mt-3">
103553
+ <div class="mt-6">
103604
103554
  <symphiq-napkin-visual-placeholder
103605
103555
  [visual]="goal().visual"
103606
103556
  [viewMode]="viewMode()"
103607
103557
  />
103608
103558
  </div>
103609
103559
  }
103610
-
103560
+
103611
103561
  <!-- Objectives Button -->
103612
103562
  @if (goal().objectives && goal().objectives!.length > 0) {
103613
- <symphiq-show-objectives-button
103614
- [viewMode]="viewMode()"
103615
- [subLabel]="'View ' + goal().objectives!.length + ' objectives'"
103616
- (buttonClick)="showObjectives.emit()"
103617
- />
103563
+ <div class="mt-6">
103564
+ <symphiq-show-objectives-button
103565
+ [viewMode]="viewMode()"
103566
+ [subLabel]="'View ' + goal().objectives!.length + ' objectives'"
103567
+ (buttonClick)="showObjectives.emit()"
103568
+ />
103569
+ </div>
103618
103570
  }
103619
103571
  </div>
103620
103572
  <div class="lg:w-100 flex-shrink-0 flex flex-col gap-4">
@@ -103656,12 +103608,12 @@ class UnifiedGoalDetailModalContentComponent {
103656
103608
  />
103657
103609
  </div>
103658
103610
  </div>
103659
-
103611
+
103660
103612
  </div>
103661
103613
  `
103662
103614
  }]
103663
103615
  }], 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"] }] }); })();
103664
- (() => { (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: 98 }); })();
103616
+ (() => { (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 }); })();
103665
103617
 
103666
103618
  const _forTrack0$7 = ($index, $item) => $item.metric;
103667
103619
  function UnifiedGoalRelatedMetricsModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
@@ -103741,7 +103693,7 @@ class UnifiedGoalRelatedMetricsModalContentComponent {
103741
103693
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalRelatedMetricsModalContentComponent, { className: "UnifiedGoalRelatedMetricsModalContentComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-goal-related-metrics-modal-content.component.ts", lineNumber: 36 }); })();
103742
103694
 
103743
103695
  function PriorityActionsModalContentComponent_For_5_Conditional_16_For_5_Template(rf, ctx) { if (rf & 1) {
103744
- i0.ɵɵelementStart(0, "span", 20);
103696
+ i0.ɵɵelementStart(0, "span", 19);
103745
103697
  i0.ɵɵtext(1);
103746
103698
  i0.ɵɵelementEnd();
103747
103699
  } if (rf & 2) {
@@ -103755,8 +103707,8 @@ function PriorityActionsModalContentComponent_For_5_Conditional_16_Template(rf,
103755
103707
  i0.ɵɵelementStart(0, "div", 16)(1, "span", 18);
103756
103708
  i0.ɵɵtext(2, " Contributing Areas ");
103757
103709
  i0.ɵɵelementEnd();
103758
- i0.ɵɵelementStart(3, "div", 19);
103759
- i0.ɵɵrepeaterCreate(4, PriorityActionsModalContentComponent_For_5_Conditional_16_For_5_Template, 2, 2, "span", 20, i0.ɵɵrepeaterTrackByIdentity);
103710
+ i0.ɵɵelementStart(3, "div", 11);
103711
+ i0.ɵɵrepeaterCreate(4, PriorityActionsModalContentComponent_For_5_Conditional_16_For_5_Template, 2, 2, "span", 19, i0.ɵɵrepeaterTrackByIdentity);
103760
103712
  i0.ɵɵelementEnd()();
103761
103713
  } if (rf & 2) {
103762
103714
  const item_r3 = i0.ɵɵnextContext().$implicit;
@@ -103768,36 +103720,40 @@ function PriorityActionsModalContentComponent_For_5_Conditional_16_Template(rf,
103768
103720
  } }
103769
103721
  function PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
103770
103722
  const _r4 = i0.ɵɵgetCurrentView();
103771
- i0.ɵɵelementStart(0, "button", 22);
103723
+ i0.ɵɵelementStart(0, "button", 21);
103772
103724
  i0.ɵɵlistener("click", function PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const item_r3 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.goalClick.emit(item_r3.linkedGoalId)); });
103773
103725
  i0.ɵɵnamespaceSVG();
103774
- i0.ɵɵelementStart(1, "svg", 14);
103726
+ i0.ɵɵelementStart(1, "svg", 22);
103775
103727
  i0.ɵɵelement(2, "path", 23);
103776
103728
  i0.ɵɵelementEnd();
103777
103729
  i0.ɵɵtext(3, " View Linked Goal ");
103778
- i0.ɵɵelementEnd();
103730
+ i0.ɵɵelementStart(4, "svg", 22);
103731
+ i0.ɵɵelement(5, "path", 24);
103732
+ i0.ɵɵelementEnd()();
103779
103733
  } if (rf & 2) {
103780
103734
  const ctx_r1 = i0.ɵɵnextContext(3);
103781
103735
  i0.ɵɵproperty("ngClass", ctx_r1.linkButtonClasses());
103782
103736
  } }
103783
103737
  function PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_2_Template(rf, ctx) { if (rf & 1) {
103784
103738
  const _r5 = i0.ɵɵgetCurrentView();
103785
- i0.ɵɵelementStart(0, "button", 22);
103739
+ i0.ɵɵelementStart(0, "button", 21);
103786
103740
  i0.ɵɵlistener("click", function PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const item_r3 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.recommendationClick.emit(item_r3.linkedRecommendationId)); });
103787
103741
  i0.ɵɵnamespaceSVG();
103788
- i0.ɵɵelementStart(1, "svg", 14);
103789
- i0.ɵɵelement(2, "path", 24);
103742
+ i0.ɵɵelementStart(1, "svg", 22);
103743
+ i0.ɵɵelement(2, "path", 25);
103790
103744
  i0.ɵɵelementEnd();
103791
103745
  i0.ɵɵtext(3, " View Recommendation ");
103792
- i0.ɵɵelementEnd();
103746
+ i0.ɵɵelementStart(4, "svg", 22);
103747
+ i0.ɵɵelement(5, "path", 24);
103748
+ i0.ɵɵelementEnd()();
103793
103749
  } if (rf & 2) {
103794
103750
  const ctx_r1 = i0.ɵɵnextContext(3);
103795
103751
  i0.ɵɵproperty("ngClass", ctx_r1.linkButtonClasses());
103796
103752
  } }
103797
103753
  function PriorityActionsModalContentComponent_For_5_Conditional_17_Template(rf, ctx) { if (rf & 1) {
103798
103754
  i0.ɵɵelementStart(0, "div", 17);
103799
- i0.ɵɵconditionalCreate(1, PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_1_Template, 4, 1, "button", 21);
103800
- i0.ɵɵconditionalCreate(2, PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_2_Template, 4, 1, "button", 21);
103755
+ i0.ɵɵconditionalCreate(1, PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_1_Template, 6, 1, "button", 20);
103756
+ i0.ɵɵconditionalCreate(2, PriorityActionsModalContentComponent_For_5_Conditional_17_Conditional_2_Template, 6, 1, "button", 20);
103801
103757
  i0.ɵɵelementEnd();
103802
103758
  } if (rf & 2) {
103803
103759
  const item_r3 = i0.ɵɵnextContext().$implicit;
@@ -103835,7 +103791,7 @@ function PriorityActionsModalContentComponent_For_5_Template(rf, ctx) { if (rf &
103835
103791
  const $index_r6 = ctx.$index;
103836
103792
  const ctx_r1 = i0.ɵɵnextContext();
103837
103793
  i0.ɵɵclassProp("ring-2", ctx_r1.selectedIndex() === $index_r6)("ring-indigo-500", ctx_r1.selectedIndex() === $index_r6);
103838
- i0.ɵɵproperty("ngClass", ctx_r1.cardClasses());
103794
+ i0.ɵɵproperty("ngClass", ctx_r1.cardClasses(item_r3.priority));
103839
103795
  i0.ɵɵadvance(2);
103840
103796
  i0.ɵɵproperty("ngClass", ctx_r1.indexBadgeClasses());
103841
103797
  i0.ɵɵadvance();
@@ -103868,9 +103824,6 @@ class PriorityActionsModalContentComponent {
103868
103824
  this.recommendationClick = output();
103869
103825
  this.isLight = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLight" }] : []));
103870
103826
  this.subtitleClasses = computed(() => this.isLight() ? 'text-slate-600' : 'text-slate-400', ...(ngDevMode ? [{ debugName: "subtitleClasses" }] : []));
103871
- this.cardClasses = computed(() => this.isLight()
103872
- ? 'bg-white border border-slate-200 hover:border-slate-300 hover:shadow-md'
103873
- : 'bg-slate-800/50 border border-slate-700/50 hover:border-slate-600/50', ...(ngDevMode ? [{ debugName: "cardClasses" }] : []));
103874
103827
  this.indexBadgeClasses = computed(() => this.isLight()
103875
103828
  ? 'bg-gradient-to-br from-indigo-400 to-purple-400 text-white'
103876
103829
  : 'bg-gradient-to-br from-indigo-500 to-purple-500 text-white', ...(ngDevMode ? [{ debugName: "indexBadgeClasses" }] : []));
@@ -103880,12 +103833,34 @@ class PriorityActionsModalContentComponent {
103880
103833
  : 'bg-slate-700/50 text-slate-400 border border-slate-600/50', ...(ngDevMode ? [{ debugName: "timeframeBadgeClasses" }] : []));
103881
103834
  this.labelClasses = computed(() => this.isLight() ? 'text-slate-500' : 'text-slate-500', ...(ngDevMode ? [{ debugName: "labelClasses" }] : []));
103882
103835
  this.domainChipClasses = computed(() => this.isLight()
103883
- ? 'bg-slate-100 text-slate-700'
103884
- : 'bg-slate-700/50 text-slate-300', ...(ngDevMode ? [{ debugName: "domainChipClasses" }] : []));
103836
+ ? 'bg-slate-100 text-slate-700 border border-slate-200'
103837
+ : 'bg-slate-700/50 text-slate-300 border border-slate-600/50', ...(ngDevMode ? [{ debugName: "domainChipClasses" }] : []));
103885
103838
  this.borderClasses = computed(() => this.isLight() ? 'border-slate-200' : 'border-slate-700/50', ...(ngDevMode ? [{ debugName: "borderClasses" }] : []));
103886
103839
  this.linkButtonClasses = computed(() => this.isLight()
103887
- ? 'text-indigo-600 hover:text-indigo-700'
103888
- : 'text-indigo-400 hover:text-indigo-300', ...(ngDevMode ? [{ debugName: "linkButtonClasses" }] : []));
103840
+ ? 'bg-indigo-100 text-indigo-700 border border-indigo-200 hover:bg-indigo-600 hover:text-white hover:border-indigo-600 hover:shadow-indigo-200'
103841
+ : 'bg-indigo-500/20 text-indigo-300 border border-indigo-500/30 hover:bg-indigo-500 hover:text-white hover:border-indigo-500 hover:shadow-indigo-500/30', ...(ngDevMode ? [{ debugName: "linkButtonClasses" }] : []));
103842
+ }
103843
+ cardClasses(priority) {
103844
+ const isLight = this.isLight();
103845
+ const priorityStr = String(priority).toUpperCase();
103846
+ if (priorityStr === 'CRITICAL') {
103847
+ return isLight
103848
+ ? 'bg-white border-l-4 border-l-red-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(239,68,68,0.4)]'
103849
+ : '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)]';
103850
+ }
103851
+ if (priorityStr === 'HIGH' || priorityStr === 'URGENT') {
103852
+ return isLight
103853
+ ? 'bg-white border-l-4 border-l-orange-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(249,115,22,0.4)]'
103854
+ : '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)]';
103855
+ }
103856
+ if (priorityStr === 'MEDIUM') {
103857
+ return isLight
103858
+ ? 'bg-white border-l-4 border-l-amber-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(245,158,11,0.4)]'
103859
+ : '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)]';
103860
+ }
103861
+ return isLight
103862
+ ? 'bg-white border-l-4 border-l-blue-500 border border-slate-200 hover:shadow-[0_0_15px_rgba(59,130,246,0.4)]'
103863
+ : '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)]';
103889
103864
  }
103890
103865
  impactBadgeClasses(impact) {
103891
103866
  const isLight = this.isLight();
@@ -103920,7 +103895,7 @@ class PriorityActionsModalContentComponent {
103920
103895
  .join(' ');
103921
103896
  }
103922
103897
  static { this.ɵfac = function PriorityActionsModalContentComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PriorityActionsModalContentComponent)(); }; }
103923
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PriorityActionsModalContentComponent, selectors: [["symphiq-priority-actions-modal-content"]], inputs: { items: [1, "items"], viewMode: [1, "viewMode"], selectedIndex: [1, "selectedIndex"] }, outputs: { goalClick: "goalClick", recommendationClick: "recommendationClick" }, decls: 6, vars: 2, consts: [[1, "space-y-6"], [1, "text-sm", 3, "ngClass"], [1, "space-y-4"], [1, "rounded-xl", "p-5", "transition-all", "duration-200", 3, "ngClass", "ring-2", "ring-indigo-500"], [1, "rounded-xl", "p-5", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "gap-4"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "flex-1", "space-y-3"], [1, "flex", "items-start", "justify-between", "gap-3"], [1, "font-semibold", "leading-tight", 3, "ngClass"], [3, "priority", "viewMode"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-medium", "flex", "items-center", "gap-1", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "space-y-1.5"], [1, "flex", "items-center", "gap-3", "pt-2", "border-t", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-1.5"], [1, "px-2", "py-0.5", "rounded", "text-xs", 3, "ngClass"], ["type", "button", 1, "text-xs", "font-medium", "flex", "items-center", "gap-1", "cursor-pointer", "transition-colors", 3, "ngClass"], ["type", "button", 1, "text-xs", "font-medium", "flex", "items-center", "gap-1", "cursor-pointer", "transition-colors", 3, "click", "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 21v-4m0 0V5a2 2 0 012-2h6.5l1 1H21l-3 6 3 6h-8.5l-1-1H5a2 2 0 00-2 2zm9-13.5V9"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"]], template: function PriorityActionsModalContentComponent_Template(rf, ctx) { if (rf & 1) {
103898
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PriorityActionsModalContentComponent, selectors: [["symphiq-priority-actions-modal-content"]], inputs: { items: [1, "items"], viewMode: [1, "viewMode"], selectedIndex: [1, "selectedIndex"] }, outputs: { goalClick: "goalClick", recommendationClick: "recommendationClick" }, decls: 6, vars: 2, consts: [[1, "space-y-6"], [1, "text-sm", 3, "ngClass"], [1, "space-y-4"], [1, "rounded-xl", "p-5", "transition-all", "duration-200", 3, "ngClass", "ring-2", "ring-indigo-500"], [1, "rounded-xl", "p-5", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "gap-4"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "flex-1", "space-y-4"], [1, "flex", "items-start", "justify-between", "gap-3"], [1, "font-semibold", "leading-tight", 3, "ngClass"], [3, "priority", "viewMode"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-medium", "flex", "items-center", "gap-1", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "space-y-2", "pt-3"], [1, "flex", "flex-wrap", "items-center", "gap-3", "pt-4", "mt-2", "border-t", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", 3, "ngClass"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-medium", "cursor-pointer", "transition-all", "duration-200", "hover:scale-105", "hover:shadow-lg", 3, "ngClass"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-medium", "cursor-pointer", "transition-all", "duration-200", "hover:scale-105", "hover:shadow-lg", 3, "click", "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", "M3 21v-4m0 0V5a2 2 0 012-2h6.5l1 1H21l-3 6 3 6h-8.5l-1-1H5a2 2 0 00-2 2zm9-13.5V9"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"]], template: function PriorityActionsModalContentComponent_Template(rf, ctx) { if (rf & 1) {
103924
103899
  i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
103925
103900
  i0.ɵɵtext(2);
103926
103901
  i0.ɵɵelementEnd();
@@ -103952,7 +103927,7 @@ class PriorityActionsModalContentComponent {
103952
103927
  <div class="space-y-4">
103953
103928
  @for (item of items(); track $index) {
103954
103929
  <div
103955
- [ngClass]="cardClasses()"
103930
+ [ngClass]="cardClasses(item.priority)"
103956
103931
  class="rounded-xl p-5 transition-all duration-200"
103957
103932
  [class.ring-2]="selectedIndex() === $index"
103958
103933
  [class.ring-indigo-500]="selectedIndex() === $index">
@@ -103961,7 +103936,7 @@ class PriorityActionsModalContentComponent {
103961
103936
  {{ $index + 1 }}
103962
103937
  </div>
103963
103938
 
103964
- <div class="flex-1 space-y-3">
103939
+ <div class="flex-1 space-y-4">
103965
103940
  <div class="flex items-start justify-between gap-3">
103966
103941
  <p [ngClass]="actionTextClasses()" class="font-semibold leading-tight">
103967
103942
  {{ item.action }}
@@ -103982,13 +103957,13 @@ class PriorityActionsModalContentComponent {
103982
103957
  </div>
103983
103958
 
103984
103959
  @if (item.contributingDomains && item.contributingDomains.length > 0) {
103985
- <div class="space-y-1.5">
103960
+ <div class="space-y-2 pt-3">
103986
103961
  <span [ngClass]="labelClasses()" class="text-xs font-semibold uppercase tracking-wider">
103987
103962
  Contributing Areas
103988
103963
  </span>
103989
- <div class="flex flex-wrap gap-1.5">
103964
+ <div class="flex flex-wrap gap-2">
103990
103965
  @for (domain of item.contributingDomains; track domain) {
103991
- <span [ngClass]="domainChipClasses()" class="px-2 py-0.5 rounded text-xs">
103966
+ <span [ngClass]="domainChipClasses()" class="px-3 py-1.5 rounded-lg text-xs font-medium">
103992
103967
  {{ formatDomain(domain) }}
103993
103968
  </span>
103994
103969
  }
@@ -103997,17 +103972,20 @@ class PriorityActionsModalContentComponent {
103997
103972
  }
103998
103973
 
103999
103974
  @if (item.linkedGoalId || item.linkedRecommendationId) {
104000
- <div class="flex items-center gap-3 pt-2 border-t" [ngClass]="borderClasses()">
103975
+ <div class="flex flex-wrap items-center gap-3 pt-4 mt-2 border-t" [ngClass]="borderClasses()">
104001
103976
  @if (item.linkedGoalId) {
104002
103977
  <button
104003
103978
  type="button"
104004
103979
  (click)="goalClick.emit(item.linkedGoalId!)"
104005
103980
  [ngClass]="linkButtonClasses()"
104006
- class="text-xs font-medium flex items-center gap-1 cursor-pointer transition-colors">
104007
- <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
103981
+ class="flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium cursor-pointer transition-all duration-200 hover:scale-105 hover:shadow-lg">
103982
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
104008
103983
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 21v-4m0 0V5a2 2 0 012-2h6.5l1 1H21l-3 6 3 6h-8.5l-1-1H5a2 2 0 00-2 2zm9-13.5V9"/>
104009
103984
  </svg>
104010
103985
  View Linked Goal
103986
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
103987
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
103988
+ </svg>
104011
103989
  </button>
104012
103990
  }
104013
103991
  @if (item.linkedRecommendationId) {
@@ -104015,11 +103993,14 @@ class PriorityActionsModalContentComponent {
104015
103993
  type="button"
104016
103994
  (click)="recommendationClick.emit(item.linkedRecommendationId!)"
104017
103995
  [ngClass]="linkButtonClasses()"
104018
- class="text-xs font-medium flex items-center gap-1 cursor-pointer transition-colors">
104019
- <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
103996
+ class="flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium cursor-pointer transition-all duration-200 hover:scale-105 hover:shadow-lg">
103997
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
104020
103998
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"/>
104021
103999
  </svg>
104022
104000
  View Recommendation
104001
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
104002
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
104003
+ </svg>
104023
104004
  </button>
104024
104005
  }
104025
104006
  </div>
@@ -104033,7 +104014,7 @@ class PriorityActionsModalContentComponent {
104033
104014
  `
104034
104015
  }]
104035
104016
  }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], selectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIndex", required: false }] }], goalClick: [{ type: i0.Output, args: ["goalClick"] }], recommendationClick: [{ type: i0.Output, args: ["recommendationClick"] }] }); })();
104036
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PriorityActionsModalContentComponent, { className: "PriorityActionsModalContentComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/priority-actions-modal-content.component.ts", lineNumber: 101 }); })();
104017
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PriorityActionsModalContentComponent, { className: "PriorityActionsModalContentComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/priority-actions-modal-content.component.ts", lineNumber: 107 }); })();
104037
104018
 
104038
104019
  const _c0$8 = ["modalContent"];
104039
104020
  const _c1$4 = ["modalWrapper"];
@@ -104150,7 +104131,7 @@ function UnifiedDashboardModalComponent_Conditional_0_Conditional_10_Template(rf
104150
104131
  i0.ɵɵadvance();
104151
104132
  i0.ɵɵproperty("ngClass", ctx_r1.modalTypeLabelClasses());
104152
104133
  i0.ɵɵadvance();
104153
- i0.ɵɵtextInterpolate1(" ", ctx_r1.modalType() === "unified-goal-objectives" ? "Objectives" : ctx_r1.modalType() === "unified-goal-related-metrics" ? "Related Metrics" : ctx_r1.modalType() === "objective-strategies" ? "Strategies" : ctx_r1.modalType() === "strategy-recommendations" ? "Recommendations" : ctx_r1.modalType() === "priority-actions-list" ? "Priority Actions" : "Unified Goal", " ");
104134
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.modalType() === "unified-goal-objectives" ? "Objectives" : ctx_r1.modalType() === "unified-goal-related-metrics" ? "Related Metrics" : ctx_r1.modalType() === "objective-strategies" ? "Strategies" : ctx_r1.modalType() === "strategy-recommendations" ? "Recommendations" : ctx_r1.modalType() === "priority-actions-list" ? "Unified Analysis" : "Unified Goal", " ");
104154
104135
  } }
104155
104136
  function UnifiedDashboardModalComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
104156
104137
  i0.ɵɵelement(0, "symphiq-priority-badge", 15);
@@ -104201,7 +104182,10 @@ function UnifiedDashboardModalComponent_Conditional_0_Conditional_25_Template(rf
104201
104182
  i0.ɵɵproperty("strategy", ctx_r1.recommendationsData().strategy)("viewMode", ctx_r1.viewMode())("allMetrics", ctx_r1.allMetricsFromStack())("allCharts", ctx_r1.allChartsFromStack())("allInsights", ctx_r1.allInsightsFromStack())("goalTitle", ctx_r1.recommendationsData().goalTitle)("objectiveTitle", ctx_r1.recommendationsData().objectiveTitle)("currentModalState", ctx_r1.currentModalState());
104202
104183
  } }
104203
104184
  function UnifiedDashboardModalComponent_Conditional_0_Conditional_26_Template(rf, ctx) { if (rf & 1) {
104204
- i0.ɵɵelement(0, "symphiq-priority-actions-modal-content", 26);
104185
+ const _r11 = i0.ɵɵgetCurrentView();
104186
+ i0.ɵɵelementStart(0, "symphiq-priority-actions-modal-content", 37);
104187
+ i0.ɵɵlistener("goalClick", function UnifiedDashboardModalComponent_Conditional_0_Conditional_26_Template_symphiq_priority_actions_modal_content_goalClick_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPriorityActionGoalClick($event)); })("recommendationClick", function UnifiedDashboardModalComponent_Conditional_0_Conditional_26_Template_symphiq_priority_actions_modal_content_recommendationClick_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPriorityActionRecommendationClick($event)); });
104188
+ i0.ɵɵelementEnd();
104205
104189
  } if (rf & 2) {
104206
104190
  const ctx_r1 = i0.ɵɵnextContext(2);
104207
104191
  i0.ɵɵproperty("items", ctx_r1.priorityActionsData().items)("viewMode", ctx_r1.viewMode())("selectedIndex", ctx_r1.priorityActionsData().selectedIndex ?? null);
@@ -104239,13 +104223,14 @@ function UnifiedDashboardModalComponent_Conditional_0_Template(rf, ctx) { if (rf
104239
104223
  i0.ɵɵconditionalCreate(26, UnifiedDashboardModalComponent_Conditional_0_Conditional_26_Template, 1, 3, "symphiq-priority-actions-modal-content", 26);
104240
104224
  i0.ɵɵelementEnd()()();
104241
104225
  } if (rf & 2) {
104242
- let tmp_16_0;
104243
104226
  let tmp_17_0;
104227
+ let tmp_18_0;
104244
104228
  const ctx_r1 = i0.ɵɵnextContext();
104245
104229
  i0.ɵɵstyleProp("z-index", ctx_r1.baseZIndex())("visibility", ctx_r1.modalReady() ? "visible" : "hidden");
104246
104230
  i0.ɵɵadvance(2);
104247
104231
  i0.ɵɵstyleProp("z-index", ctx_r1.backdropZIndex());
104248
- i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "bg-slate-900/15" : "bg-slate-950/25")("@fadeIn", ctx_r1.isFreshOpen() ? "enter" : "none");
104232
+ i0.ɵɵclassProp("opacity-0", !ctx_r1.modalReady())("opacity-100", ctx_r1.modalReady());
104233
+ i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "bg-slate-900/15" : "bg-slate-950/25");
104249
104234
  i0.ɵɵadvance();
104250
104235
  i0.ɵɵstyleProp("z-index", ctx_r1.contentZIndex());
104251
104236
  i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "bg-white/90 border-slate-200/50" : "bg-slate-800/90 border-slate-700/50")("@slideUpFade", undefined);
@@ -104260,9 +104245,9 @@ function UnifiedDashboardModalComponent_Conditional_0_Template(rf, ctx) { if (rf
104260
104245
  i0.ɵɵadvance();
104261
104246
  i0.ɵɵtextInterpolate1(" ", ctx_r1.modalTitle(), " ");
104262
104247
  i0.ɵɵadvance(2);
104263
- i0.ɵɵconditional(((tmp_16_0 = ctx_r1.currentGoal()) == null ? null : tmp_16_0.priority) ? 14 : -1);
104248
+ i0.ɵɵconditional(((tmp_17_0 = ctx_r1.currentGoal()) == null ? null : tmp_17_0.priority) ? 14 : -1);
104264
104249
  i0.ɵɵadvance();
104265
- i0.ɵɵconditional(((tmp_17_0 = ctx_r1.currentGoal()) == null ? null : tmp_17_0.timeframe) ? 15 : -1);
104250
+ i0.ɵɵconditional(((tmp_18_0 = ctx_r1.currentGoal()) == null ? null : tmp_18_0.timeframe) ? 15 : -1);
104266
104251
  i0.ɵɵadvance();
104267
104252
  i0.ɵɵstyleProp("z-index", ctx_r1.contentZIndex() + 1);
104268
104253
  i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-600 hover:text-slate-900 hover:bg-slate-100" : "text-slate-400 hover:text-white hover:bg-slate-700");
@@ -104284,6 +104269,9 @@ function UnifiedDashboardModalComponent_Conditional_0_Template(rf, ctx) { if (rf
104284
104269
  class UnifiedDashboardModalComponent {
104285
104270
  constructor() {
104286
104271
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
104272
+ this.priorityActionGoalClick = output();
104273
+ this.priorityActionRecommendationClick = output();
104274
+ this.sourceAnalysisClickRequest = output();
104287
104275
  this.modalService = inject(ModalService);
104288
104276
  this.renderer = inject(Renderer2);
104289
104277
  this.document = inject(DOCUMENT);
@@ -104444,21 +104432,15 @@ class UnifiedDashboardModalComponent {
104444
104432
  : 'text-slate-400 hover:text-white hover:bg-slate-700', ...(ngDevMode ? [{ debugName: "backButtonClasses" }] : []));
104445
104433
  effect(() => {
104446
104434
  const open = this.isOpen();
104447
- if (open) {
104435
+ const isFresh = this.isFreshOpen();
104436
+ if (open && isFresh) {
104448
104437
  this.modalReady.set(false);
104449
- console.log('[UnifiedDashboardModal] Modal opening - z-index info:', {
104450
- modalType: this.modalType(),
104451
- modalDepth: this.modalDepth(),
104452
- baseZIndex: this.baseZIndex(),
104453
- contentZIndex: this.contentZIndex(),
104454
- previousStateType: this.previousState()?.type
104455
- });
104456
104438
  setTimeout(() => {
104457
104439
  this.moveModalToBody();
104458
104440
  this.modalReady.set(true);
104459
104441
  }, 0);
104460
104442
  }
104461
- else {
104443
+ else if (!open) {
104462
104444
  this.modalReady.set(false);
104463
104445
  this.returnModalToHost();
104464
104446
  }
@@ -104564,7 +104546,7 @@ class UnifiedDashboardModalComponent {
104564
104546
  });
104565
104547
  }
104566
104548
  onSourceAnalysisClick(source) {
104567
- console.log('Source analysis clicked:', source);
104549
+ this.sourceAnalysisClickRequest.emit(source);
104568
104550
  }
104569
104551
  onMetricClick(metric) {
104570
104552
  const data = this.unifiedGoalData();
@@ -104659,6 +104641,12 @@ class UnifiedDashboardModalComponent {
104659
104641
  }
104660
104642
  return 'Unknown';
104661
104643
  }
104644
+ onPriorityActionGoalClick(goalId) {
104645
+ this.priorityActionGoalClick.emit(goalId);
104646
+ }
104647
+ onPriorityActionRecommendationClick(recommendationId) {
104648
+ this.priorityActionRecommendationClick.emit(recommendationId);
104649
+ }
104662
104650
  closeModal() {
104663
104651
  this.modalService.closeModal();
104664
104652
  }
@@ -104693,8 +104681,8 @@ class UnifiedDashboardModalComponent {
104693
104681
  let _t;
104694
104682
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalContent = _t.first);
104695
104683
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalWrapper = _t.first);
104696
- } }, inputs: { viewMode: [1, "viewMode"] }, 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", 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"]], template: function UnifiedDashboardModalComponent_Template(rf, ctx) { if (rf & 1) {
104697
- i0.ɵɵconditionalCreate(0, UnifiedDashboardModalComponent_Conditional_0_Template, 27, 29, "div", 2);
104684
+ } }, inputs: { viewMode: [1, "viewMode"] }, 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) {
104685
+ i0.ɵɵconditionalCreate(0, UnifiedDashboardModalComponent_Conditional_0_Template, 27, 32, "div", 2);
104698
104686
  } if (rf & 2) {
104699
104687
  i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
104700
104688
  } }, dependencies: [CommonModule, i1$1.NgClass, UnifiedGoalDetailModalContentComponent,
@@ -104757,7 +104745,7 @@ class UnifiedDashboardModalComponent {
104757
104745
  template: `
104758
104746
  @if (isOpen()) {
104759
104747
  <div #modalWrapper class="fixed inset-0 flex items-center justify-center p-4 overflow-y-auto" [style.z-index]="baseZIndex()" [style.visibility]="modalReady() ? 'visible' : 'hidden'">
104760
- <div [ngClass]="isLightMode() ? 'bg-slate-900/15' : 'bg-slate-950/25'" class="fixed inset-0 backdrop-blur-sm" [style.z-index]="backdropZIndex()" aria-hidden="true" [@fadeIn]="isFreshOpen() ? 'enter' : 'none'" (click)="closeModal()"></div>
104748
+ <div [ngClass]="isLightMode() ? 'bg-slate-900/15' : 'bg-slate-950/25'" class="fixed inset-0 backdrop-blur-sm transition-opacity duration-200" [class.opacity-0]="!modalReady()" [class.opacity-100]="modalReady()" [style.z-index]="backdropZIndex()" aria-hidden="true" (click)="closeModal()"></div>
104761
104749
 
104762
104750
  <div
104763
104751
  (click)="$event.stopPropagation()"
@@ -104818,7 +104806,7 @@ class UnifiedDashboardModalComponent {
104818
104806
  } @else {
104819
104807
  <div class="flex items-center gap-2 mb-2">
104820
104808
  <span [ngClass]="modalTypeLabelClasses()" class="text-xs font-semibold uppercase tracking-wider">
104821
- {{ modalType() === 'unified-goal-objectives' ? 'Objectives' : modalType() === 'unified-goal-related-metrics' ? 'Related Metrics' : modalType() === 'objective-strategies' ? 'Strategies' : modalType() === 'strategy-recommendations' ? 'Recommendations' : modalType() === 'priority-actions-list' ? 'Priority Actions' : 'Unified Goal' }}
104809
+ {{ modalType() === 'unified-goal-objectives' ? 'Objectives' : modalType() === 'unified-goal-related-metrics' ? 'Related Metrics' : modalType() === 'objective-strategies' ? 'Strategies' : modalType() === 'strategy-recommendations' ? 'Recommendations' : modalType() === 'priority-actions-list' ? 'Unified Analysis' : 'Unified Goal' }}
104822
104810
  </span>
104823
104811
  </div>
104824
104812
  }
@@ -104906,6 +104894,8 @@ class UnifiedDashboardModalComponent {
104906
104894
  [items]="priorityActionsData()!.items"
104907
104895
  [viewMode]="viewMode()"
104908
104896
  [selectedIndex]="priorityActionsData()!.selectedIndex ?? null"
104897
+ (goalClick)="onPriorityActionGoalClick($event)"
104898
+ (recommendationClick)="onPriorityActionRecommendationClick($event)"
104909
104899
  />
104910
104900
  }
104911
104901
  </div>
@@ -104914,21 +104904,182 @@ class UnifiedDashboardModalComponent {
104914
104904
  }
104915
104905
  `
104916
104906
  }]
104917
- }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], modalContent: [{
104907
+ }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], priorityActionGoalClick: [{ type: i0.Output, args: ["priorityActionGoalClick"] }], priorityActionRecommendationClick: [{ type: i0.Output, args: ["priorityActionRecommendationClick"] }], sourceAnalysisClickRequest: [{ type: i0.Output, args: ["sourceAnalysisClickRequest"] }], modalContent: [{
104918
104908
  type: ViewChild,
104919
104909
  args: ['modalContent']
104920
104910
  }], modalWrapper: [{
104921
104911
  type: ViewChild,
104922
104912
  args: ['modalWrapper']
104923
104913
  }] }); })();
104924
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedDashboardModalComponent, { className: "UnifiedDashboardModalComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-dashboard-modal.component.ts", lineNumber: 232 }); })();
104914
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedDashboardModalComponent, { className: "UnifiedDashboardModalComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-dashboard-modal.component.ts", lineNumber: 236 }); })();
104915
+
104916
+ function UnifiedWelcomeBannerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
104917
+ i0.ɵɵtext(0, " Your Unified Goals ");
104918
+ } }
104919
+ function UnifiedWelcomeBannerComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
104920
+ i0.ɵɵtext(0, " Welcome to Your Unified Analysis ");
104921
+ } }
104922
+ class UnifiedWelcomeBannerComponent {
104923
+ constructor() {
104924
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
104925
+ this.businessName = input('your business', ...(ngDevMode ? [{ debugName: "businessName" }] : []));
104926
+ this.isOnboarded = input(false, ...(ngDevMode ? [{ debugName: "isOnboarded" }] : []));
104927
+ this.analysisDate = input(...(ngDevMode ? [undefined, { debugName: "analysisDate" }] : []));
104928
+ this.isUnifiedAnalysisComplete = input(false, ...(ngDevMode ? [{ debugName: "isUnifiedAnalysisComplete" }] : []));
104929
+ this.sourceAnalysesCount = input(0, ...(ngDevMode ? [{ debugName: "sourceAnalysesCount" }] : []));
104930
+ this.unifiedGoalsCount = input(0, ...(ngDevMode ? [{ debugName: "unifiedGoalsCount" }] : []));
104931
+ this.whatYoullSeeBelowItems = [
104932
+ { title: 'Unified Goals', description: 'Strategic goals synthesized from all your source analyses with clear priorities and expected impact' },
104933
+ { title: 'Implementation Timeline', description: 'A phased roadmap showing when to tackle each goal for optimal results' },
104934
+ { title: 'Priority Matrix', description: 'Visual prioritization of goals based on effort required and potential impact' },
104935
+ { title: 'Next Steps', description: 'Actionable steps to begin implementing your highest-priority unified goals' }
104936
+ ];
104937
+ this.formattedAnalysisDate = computed(() => {
104938
+ const date = this.analysisDate();
104939
+ if (!date) {
104940
+ return null;
104941
+ }
104942
+ return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
104943
+ }, ...(ngDevMode ? [{ debugName: "formattedAnalysisDate" }] : []));
104944
+ this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
104945
+ this.containerClasses = computed(() => this.isDark()
104946
+ ? 'bg-slate-800/40 border-slate-700/50'
104947
+ : 'bg-white border-slate-200', ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
104948
+ this.contentClasses = computed(() => this.isDark()
104949
+ ? 'bg-gradient-to-br from-slate-800/60 via-slate-800/40 to-slate-800/60'
104950
+ : 'bg-gradient-to-br from-emerald-50/30 via-white to-cyan-50/30', ...(ngDevMode ? [{ debugName: "contentClasses" }] : []));
104951
+ this.iconContainerClasses = computed(() => this.isDark()
104952
+ ? 'bg-gradient-to-br from-emerald-500/20 to-cyan-500/20 text-emerald-400'
104953
+ : 'bg-gradient-to-br from-emerald-100 to-cyan-100 text-emerald-600', ...(ngDevMode ? [{ debugName: "iconContainerClasses" }] : []));
104954
+ this.titleClasses = computed(() => this.isDark()
104955
+ ? 'text-white'
104956
+ : 'bg-gradient-to-r from-emerald-600 to-cyan-600 bg-clip-text text-transparent', ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
104957
+ this.textClasses = computed(() => this.isDark() ? 'text-slate-300' : 'text-slate-700', ...(ngDevMode ? [{ debugName: "textClasses" }] : []));
104958
+ }
104959
+ static { this.ɵfac = function UnifiedWelcomeBannerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedWelcomeBannerComponent)(); }; }
104960
+ 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: 22, vars: 15, 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, "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"]], template: function UnifiedWelcomeBannerComponent_Template(rf, ctx) { if (rf & 1) {
104961
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
104962
+ i0.ɵɵnamespaceSVG();
104963
+ i0.ɵɵelementStart(4, "svg", 4);
104964
+ i0.ɵɵelement(5, "path", 5);
104965
+ i0.ɵɵelementEnd()();
104966
+ i0.ɵɵnamespaceHTML();
104967
+ i0.ɵɵelementStart(6, "div", 6)(7, "h2", 7);
104968
+ i0.ɵɵconditionalCreate(8, UnifiedWelcomeBannerComponent_Conditional_8_Template, 1, 0)(9, UnifiedWelcomeBannerComponent_Conditional_9_Template, 1, 0);
104969
+ i0.ɵɵelementEnd();
104970
+ i0.ɵɵelementStart(10, "div", 8)(11, "div", 9)(12, "p", 10);
104971
+ i0.ɵɵtext(13);
104972
+ i0.ɵɵelementEnd();
104973
+ i0.ɵɵelementStart(14, "p", 10)(15, "strong", 11);
104974
+ i0.ɵɵtext(16, "Why this matters:");
104975
+ i0.ɵɵelementEnd();
104976
+ 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. ");
104977
+ i0.ɵɵelementEnd()();
104978
+ i0.ɵɵelementStart(18, "div", 12);
104979
+ i0.ɵɵelement(19, "symphiq-confidence-level-card", 13);
104980
+ i0.ɵɵelementEnd()();
104981
+ i0.ɵɵelement(20, "symphiq-what-youll-see-below", 14)(21, "symphiq-continue-your-journey", 15);
104982
+ i0.ɵɵelementEnd()()()();
104983
+ } if (rf & 2) {
104984
+ i0.ɵɵproperty("ngClass", ctx.containerClasses());
104985
+ i0.ɵɵadvance();
104986
+ i0.ɵɵproperty("ngClass", ctx.contentClasses());
104987
+ i0.ɵɵadvance(2);
104988
+ i0.ɵɵproperty("ngClass", ctx.iconContainerClasses());
104989
+ i0.ɵɵadvance(4);
104990
+ i0.ɵɵproperty("ngClass", ctx.titleClasses());
104991
+ i0.ɵɵadvance();
104992
+ i0.ɵɵconditional(ctx.isOnboarded() ? 8 : 9);
104993
+ i0.ɵɵadvance(4);
104994
+ i0.ɵɵproperty("ngClass", ctx.textClasses());
104995
+ i0.ɵɵadvance();
104996
+ 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. ");
104997
+ i0.ɵɵadvance();
104998
+ i0.ɵɵproperty("ngClass", ctx.textClasses());
104999
+ i0.ɵɵadvance(5);
105000
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("isCurrentStepComplete", ctx.isUnifiedAnalysisComplete());
105001
+ i0.ɵɵadvance();
105002
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("items", ctx.whatYoullSeeBelowItems)("analysisDate", ctx.formattedAnalysisDate());
105003
+ i0.ɵɵadvance();
105004
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("isOnboarded", ctx.isOnboarded());
105005
+ } }, dependencies: [CommonModule, i1$1.NgClass, ConfidenceLevelCardComponent, ContinueYourJourneyComponent, WhatYoullSeeBelowComponent], encapsulation: 2, changeDetection: 0 }); }
105006
+ }
105007
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnifiedWelcomeBannerComponent, [{
105008
+ type: Component,
105009
+ args: [{
105010
+ selector: 'symphiq-unified-welcome-banner',
105011
+ standalone: true,
105012
+ imports: [CommonModule, ConfidenceLevelCardComponent, ContinueYourJourneyComponent, WhatYoullSeeBelowComponent],
105013
+ changeDetection: ChangeDetectionStrategy.OnPush,
105014
+ template: `
105015
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
105016
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
105017
+ <div class="flex items-start gap-6">
105018
+ <div [ngClass]="iconContainerClasses()" class="flex-shrink-0 w-16 h-16 rounded-2xl flex items-center justify-center">
105019
+ <svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
105020
+ <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>
105021
+ </svg>
105022
+ </div>
105023
+
105024
+ <div class="flex-1">
105025
+ <h2 [ngClass]="titleClasses()" class="text-2xl sm:text-3xl font-bold mb-3">
105026
+ @if (isOnboarded()) {
105027
+ Your Unified Goals
105028
+ } @else {
105029
+ Welcome to Your Unified Analysis
105030
+ }
105031
+ </h2>
105032
+
105033
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
105034
+ <div class="lg:col-span-2 space-y-3">
105035
+ <p [ngClass]="textClasses()" class="text-base leading-relaxed">
105036
+ 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.
105037
+ </p>
105038
+ <p [ngClass]="textClasses()" class="text-base leading-relaxed">
105039
+ <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.
105040
+ </p>
105041
+ </div>
105042
+
105043
+ <div class="lg:col-span-1">
105044
+ <symphiq-confidence-level-card
105045
+ [viewMode]="viewMode()"
105046
+ currentStepId="unified-analysis"
105047
+ [isCurrentStepComplete]="isUnifiedAnalysisComplete()"
105048
+ />
105049
+ </div>
105050
+ </div>
105051
+
105052
+ <symphiq-what-youll-see-below
105053
+ class="mt-6 block"
105054
+ [viewMode]="viewMode()"
105055
+ [items]="whatYoullSeeBelowItems"
105056
+ [analysisDate]="formattedAnalysisDate()"
105057
+ />
105058
+
105059
+ <symphiq-continue-your-journey
105060
+ class="mt-6 block"
105061
+ [viewMode]="viewMode()"
105062
+ [isOnboarded]="isOnboarded()"
105063
+ title="Maximize Your Unified Insights"
105064
+ onboardedTitle="Keep Your Unified Goals Current"
105065
+ 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."
105066
+ 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."
105067
+ />
105068
+ </div>
105069
+ </div>
105070
+ </div>
105071
+ </div>
105072
+ `
105073
+ }]
105074
+ }], 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 }] }] }); })();
105075
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedWelcomeBannerComponent, { className: "UnifiedWelcomeBannerComponent", filePath: "lib/components/profile-analysis-unified-dashboard/unified-welcome-banner.component.ts", lineNumber: 73 }); })();
104925
105076
 
104926
105077
  const _c0$7 = () => [];
104927
105078
  const _c1$3 = a0 => ({ name: "flag", source: a0 });
104928
105079
  const _forTrack0$6 = ($index, $item) => $item.id;
104929
105080
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
104930
105081
  const _r1 = i0.ɵɵgetCurrentView();
104931
- i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 17);
105082
+ i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 15);
104932
105083
  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)); });
104933
105084
  i0.ɵɵelementEnd();
104934
105085
  } if (rf & 2) {
@@ -104936,26 +105087,26 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_5_Template(
104936
105087
  i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("currentStepId", ctx_r1.JourneyStepIdEnum.UNIFIED_ANALYSIS)("showNextStepAction", false)("forDemo", ctx_r1.forDemo())("maxAccessibleStepId", ctx_r1.maxAccessibleStepId());
104937
105088
  } }
104938
105089
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
104939
- i0.ɵɵelement(0, "symphiq-loading-card", 19);
105090
+ i0.ɵɵelement(0, "symphiq-loading-card", 17);
104940
105091
  } if (rf & 2) {
104941
105092
  const ctx_r1 = i0.ɵɵnextContext(2);
104942
105093
  i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("backdropBlur", true);
104943
105094
  } }
104944
- function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template(rf, ctx) { if (rf & 1) {
105095
+ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template(rf, ctx) { if (rf & 1) {
104945
105096
  const _r4 = i0.ɵɵgetCurrentView();
104946
- i0.ɵɵelementStart(0, "symphiq-unified-goal-card", 39);
104947
- 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)); });
105097
+ i0.ɵɵelementStart(0, "symphiq-unified-goal-card", 28);
105098
+ 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)); });
104948
105099
  i0.ɵɵelementEnd();
104949
105100
  } if (rf & 2) {
104950
105101
  const goal_r5 = ctx.$implicit;
104951
105102
  const ctx_r1 = i0.ɵɵnextContext(4);
104952
105103
  i0.ɵɵproperty("goal", goal_r5)("viewMode", ctx_r1.viewMode());
104953
105104
  } }
104954
- function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
104955
- i0.ɵɵelementStart(0, "section", 31);
104956
- i0.ɵɵelement(1, "symphiq-section-divider", 35)(2, "symphiq-section-header", 36);
104957
- i0.ɵɵelementStart(3, "div", 37);
104958
- i0.ɵɵrepeaterCreate(4, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_For_5_Template, 1, 2, "symphiq-unified-goal-card", 38, _forTrack0$6);
105105
+ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
105106
+ i0.ɵɵelementStart(0, "section", 20);
105107
+ i0.ɵɵelement(1, "symphiq-section-divider", 24)(2, "symphiq-section-header", 25);
105108
+ i0.ɵɵelementStart(3, "div", 26);
105109
+ i0.ɵɵrepeaterCreate(4, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_For_5_Template, 1, 2, "symphiq-unified-goal-card", 27, _forTrack0$6);
104959
105110
  i0.ɵɵelementEnd()();
104960
105111
  } if (rf & 2) {
104961
105112
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -104968,54 +105119,27 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
104968
105119
  } }
104969
105120
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
104970
105121
  const _r3 = i0.ɵɵgetCurrentView();
104971
- i0.ɵɵelementStart(0, "div", 20)(1, "div", 21)(2, "div", 22)(3, "div", 23);
104972
- i0.ɵɵnamespaceSVG();
104973
- i0.ɵɵelementStart(4, "svg", 24);
104974
- i0.ɵɵelement(5, "path", 25);
104975
- i0.ɵɵelementEnd()();
104976
- i0.ɵɵnamespaceHTML();
104977
- i0.ɵɵelementStart(6, "div", 26)(7, "h1", 27);
104978
- i0.ɵɵtext(8);
104979
- i0.ɵɵelementEnd();
104980
- i0.ɵɵelementStart(9, "p", 28);
104981
- i0.ɵɵtext(10);
105122
+ i0.ɵɵelement(0, "symphiq-unified-welcome-banner", 18);
105123
+ i0.ɵɵelementStart(1, "symphiq-unified-executive-summary", 19);
105124
+ 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()); });
104982
105125
  i0.ɵɵelementEnd();
104983
- i0.ɵɵelementStart(11, "p", 29);
104984
- i0.ɵɵtext(12, " These goals combine insights from your shop analysis, focus areas, and metric analyses into actionable strategic priorities. ");
104985
- i0.ɵɵelementEnd()()()()();
104986
- i0.ɵɵelementStart(13, "symphiq-unified-executive-summary", 30);
104987
- i0.ɵɵlistener("priorityActionItemClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_executive_summary_priorityActionItemClick_13_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPriorityActionItemClick($event)); })("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()); });
105126
+ i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_2_Template, 6, 8, "section", 20);
105127
+ i0.ɵɵelementStart(3, "symphiq-unified-timeline", 21);
105128
+ 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)); });
104988
105129
  i0.ɵɵelementEnd();
104989
- i0.ɵɵconditionalCreate(14, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_Template, 6, 8, "section", 31);
104990
- i0.ɵɵelementStart(15, "symphiq-unified-timeline", 32);
104991
- 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)); });
105130
+ i0.ɵɵelementStart(4, "symphiq-unified-priority-matrix", 22);
105131
+ 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)); });
104992
105132
  i0.ɵɵelementEnd();
104993
- i0.ɵɵelementStart(16, "symphiq-unified-priority-matrix", 33);
104994
- 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)); });
104995
- i0.ɵɵelementEnd();
104996
- i0.ɵɵelementStart(17, "symphiq-unified-next-steps", 34);
104997
- 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)); });
105133
+ i0.ɵɵelementStart(5, "symphiq-unified-next-steps", 23);
105134
+ 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)); });
104998
105135
  i0.ɵɵelementEnd();
104999
105136
  } if (rf & 2) {
105000
105137
  const ctx_r1 = i0.ɵɵnextContext(2);
105138
+ 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);
105001
105139
  i0.ɵɵadvance();
105002
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeBannerClasses());
105003
- i0.ɵɵadvance(2);
105004
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeIconClasses());
105005
- i0.ɵɵadvance(4);
105006
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeTitleClasses());
105007
- i0.ɵɵadvance();
105008
- i0.ɵɵtextInterpolate1(" Unified Goals for ", ctx_r1.businessName(), " ");
105009
- i0.ɵɵadvance();
105010
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeSubtitleClasses());
105011
- i0.ɵɵadvance();
105012
- i0.ɵɵtextInterpolate2(" We've synthesized ", ctx_r1.unifiedGoals().length, " unified goals from ", ctx_r1.sourceAnalysesCount(), " source analyses. ");
105013
- i0.ɵɵadvance();
105014
- i0.ɵɵproperty("ngClass", ctx_r1.welcomeDescriptionClasses());
105015
- i0.ɵɵadvance(2);
105016
105140
  i0.ɵɵproperty("summary", ctx_r1.executiveSummary())("viewMode", ctx_r1.viewMode())("shopCounts", ctx_r1.shopCounts())("focusAreaCounts", ctx_r1.focusAreaCounts())("metricCounts", ctx_r1.metricCounts());
105017
105141
  i0.ɵɵadvance();
105018
- i0.ɵɵconditional(ctx_r1.unifiedGoals().length > 0 ? 14 : -1);
105142
+ i0.ɵɵconditional(ctx_r1.unifiedGoals().length > 0 ? 2 : -1);
105019
105143
  i0.ɵɵadvance();
105020
105144
  i0.ɵɵproperty("timeline", ctx_r1.unifiedTimeline())("viewMode", ctx_r1.viewMode())("goals", ctx_r1.unifiedGoals());
105021
105145
  i0.ɵɵadvance();
@@ -105024,20 +105148,20 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
105024
105148
  i0.ɵɵproperty("steps", ctx_r1.nextSteps())("viewMode", ctx_r1.viewMode())("goals", ctx_r1.unifiedGoals());
105025
105149
  } }
105026
105150
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
105027
- i0.ɵɵelement(0, "symphiq-grade-badge", 46);
105151
+ i0.ɵɵelement(0, "symphiq-grade-badge", 36);
105028
105152
  } if (rf & 2) {
105029
105153
  const summary_r6 = i0.ɵɵnextContext();
105030
105154
  const ctx_r1 = i0.ɵɵnextContext(3);
105031
105155
  i0.ɵɵproperty("grade", summary_r6.overallGrade)("gradeRationale", summary_r6.gradeRationale || "")("viewMode", ctx_r1.viewMode());
105032
105156
  } }
105033
105157
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
105034
- i0.ɵɵelementStart(0, "section", 40)(1, "div", 41)(2, "div", 42)(3, "div", 43)(4, "div", 26)(5, "h2", 44);
105158
+ i0.ɵɵelementStart(0, "section", 29)(1, "div", 30)(2, "div", 31)(3, "div", 32)(4, "div", 33)(5, "h2", 34);
105035
105159
  i0.ɵɵtext(6, " Executive Summary ");
105036
105160
  i0.ɵɵelementEnd();
105037
- i0.ɵɵelementStart(7, "p", 45);
105161
+ i0.ɵɵelementStart(7, "p", 35);
105038
105162
  i0.ɵɵtext(8);
105039
105163
  i0.ɵɵelementEnd()();
105040
- i0.ɵɵconditionalCreate(9, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Conditional_9_Template, 1, 3, "symphiq-grade-badge", 46);
105164
+ i0.ɵɵconditionalCreate(9, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Conditional_9_Template, 1, 3, "symphiq-grade-badge", 36);
105041
105165
  i0.ɵɵelementEnd()()()();
105042
105166
  } if (rf & 2) {
105043
105167
  const summary_r6 = ctx;
@@ -105054,16 +105178,16 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
105054
105178
  i0.ɵɵconditional(summary_r6.overallGrade ? 9 : -1);
105055
105179
  } }
105056
105180
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
105057
- i0.ɵɵconditionalCreate(0, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Template, 10, 5, "section", 40);
105181
+ i0.ɵɵconditionalCreate(0, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Conditional_0_Template, 10, 5, "section", 29);
105058
105182
  } if (rf & 2) {
105059
105183
  let tmp_2_0;
105060
105184
  const ctx_r1 = i0.ɵɵnextContext(2);
105061
105185
  i0.ɵɵconditional((tmp_2_0 = ctx_r1.executiveSummary()) ? 0 : -1, tmp_2_0);
105062
105186
  } }
105063
105187
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
105064
- i0.ɵɵelementStart(0, "main", 18);
105065
- i0.ɵɵconditionalCreate(1, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template, 1, 2, "symphiq-loading-card", 19);
105066
- i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 18, 22);
105188
+ i0.ɵɵelementStart(0, "main", 16);
105189
+ i0.ɵɵconditionalCreate(1, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template, 1, 2, "symphiq-loading-card", 17);
105190
+ i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 6, 21);
105067
105191
  i0.ɵɵconditionalCreate(3, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Template, 1, 1);
105068
105192
  i0.ɵɵelementEnd();
105069
105193
  } if (rf & 2) {
@@ -105084,7 +105208,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_7_Template(
105084
105208
  } }
105085
105209
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
105086
105210
  const _r7 = i0.ɵɵgetCurrentView();
105087
- i0.ɵɵelementStart(0, "symphiq-search-modal", 47);
105211
+ i0.ɵɵelementStart(0, "symphiq-search-modal", 37);
105088
105212
  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()); });
105089
105213
  i0.ɵɵelementEnd();
105090
105214
  } if (rf & 2) {
@@ -105093,7 +105217,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_8_Template(
105093
105217
  } }
105094
105218
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
105095
105219
  const _r8 = i0.ɵɵgetCurrentView();
105096
- i0.ɵɵelementStart(0, "symphiq-view-mode-switcher-modal", 48);
105220
+ i0.ɵɵelementStart(0, "symphiq-view-mode-switcher-modal", 38);
105097
105221
  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)); });
105098
105222
  i0.ɵɵelementEnd();
105099
105223
  } if (rf & 2) {
@@ -105102,7 +105226,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template(
105102
105226
  } }
105103
105227
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
105104
105228
  const _r9 = i0.ɵɵgetCurrentView();
105105
- i0.ɵɵelementStart(0, "symphiq-mark-as-reviewed-footer", 49);
105229
+ i0.ɵɵelementStart(0, "symphiq-mark-as-reviewed-footer", 39);
105106
105230
  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()); });
105107
105231
  i0.ɵɵelementEnd();
105108
105232
  } if (rf & 2) {
@@ -105151,6 +105275,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105151
105275
  this.isViewModeSwitcherOpen = signal(false, ...(ngDevMode ? [{ debugName: "isViewModeSwitcherOpen" }] : []));
105152
105276
  this.funnelAnalysisSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "funnelAnalysisSignal" }] : []));
105153
105277
  this.loadingSourceAnalysisId = signal(undefined, ...(ngDevMode ? [{ debugName: "loadingSourceAnalysisId" }] : []));
105278
+ this.pendingSourceRequest = signal(undefined, ...(ngDevMode ? [{ debugName: "pendingSourceRequest" }] : []));
105154
105279
  this.fabExpanded = signal(false, ...(ngDevMode ? [{ debugName: "fabExpanded" }] : []));
105155
105280
  this.activeNavSection = signal('executive-summary', ...(ngDevMode ? [{ debugName: "activeNavSection" }] : []));
105156
105281
  this.mobileNavSections = [
@@ -105260,6 +105385,13 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105260
105385
  }
105261
105386
  return uniqueIds.size || this.sourceProfileAnalyses()?.length || 0;
105262
105387
  }, ...(ngDevMode ? [{ debugName: "sourceAnalysesCount" }] : []));
105388
+ this.unifiedAnalysisDate = computed(() => {
105389
+ const analysis = this.unifiedProfileAnalysis();
105390
+ if (analysis?.selfContentCompletedDate) {
105391
+ return new Date(analysis.selfContentCompletedDate);
105392
+ }
105393
+ return undefined;
105394
+ }, ...(ngDevMode ? [{ debugName: "unifiedAnalysisDate" }] : []));
105263
105395
  this.shopCounts = computed(() => {
105264
105396
  return this.countByType(ProfileAnalysisTypeEnum.SHOP);
105265
105397
  }, ...(ngDevMode ? [{ debugName: "shopCounts" }] : []));
@@ -105378,7 +105510,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105378
105510
  const analysis = this.unifiedProfileAnalysis();
105379
105511
  if (!analysis)
105380
105512
  return false;
105381
- return false;
105513
+ return analysis.selfContentStatus === AiDynamicContentStatusEnum.GENERATED &&
105514
+ analysis.reviewStatus === ProfileAnalysisReviewStatusEnum.NOT_REVIEWED;
105382
105515
  }, ...(ngDevMode ? [{ debugName: "shouldShowReviewFooter" }] : []));
105383
105516
  this.welcomeBannerClasses = computed(() => this.isLightMode()
105384
105517
  ? 'bg-gradient-to-r from-blue-600 via-cyan-600 to-teal-600 text-white'
@@ -105470,6 +105603,17 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105470
105603
  }
105471
105604
  }
105472
105605
  }, ...(ngDevMode ? [{ debugName: "embeddedScrollEffect" }] : []));
105606
+ this.pendingSourceRequestEffect = effect(() => {
105607
+ const pending = this.pendingSourceRequest();
105608
+ if (!pending?.analysisId)
105609
+ return;
105610
+ const analysis = this.sourceAnalysesMap().get(pending.analysisId);
105611
+ if (analysis) {
105612
+ untracked(() => {
105613
+ this.openSourceGoalModal(analysis, pending.sourceGoalId);
105614
+ });
105615
+ }
105616
+ }, ...(ngDevMode ? [{ debugName: "pendingSourceRequestEffect" }] : []));
105473
105617
  }
105474
105618
  ngOnChanges(changes) {
105475
105619
  if (changes['funnelAnalysis']) {
@@ -105548,17 +105692,60 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105548
105692
  onGoalClick(goal) {
105549
105693
  this.modalService.openUnifiedGoalModal(goal, this.allMetrics(), this.allCharts(), this.loadedSourceAnalysisIds().map(String), this.viewMode(), this.loadingSourceAnalysisId() !== undefined ? String(this.loadingSourceAnalysisId()) : undefined);
105550
105694
  }
105551
- onPriorityActionItemClick(item) {
105552
- const summary = this.executiveSummary();
105553
- const items = summary?.priorityActionItems ?? [];
105554
- const selectedIndex = items.findIndex(i => i.action === item.action);
105555
- this.modalService.openPriorityActionsListModal(items, this.viewMode(), selectedIndex >= 0 ? selectedIndex : undefined);
105556
- }
105557
105695
  onViewAllPriorityActionsClick() {
105558
105696
  const summary = this.executiveSummary();
105559
105697
  const items = summary?.priorityActionItems ?? [];
105560
105698
  this.modalService.openPriorityActionsListModal(items, this.viewMode());
105561
105699
  }
105700
+ onPriorityActionGoalClick(goalId) {
105701
+ const goal = this.unifiedGoals().find(g => g.id === goalId);
105702
+ if (goal) {
105703
+ const currentState = this.modalService.getCurrentState();
105704
+ this.modalService.openUnifiedGoalModal(goal, this.allMetrics(), this.allCharts(), this.loadedSourceAnalysisIds().map(String), this.viewMode(), this.loadingSourceAnalysisId() !== undefined ? String(this.loadingSourceAnalysisId()) : undefined, currentState);
105705
+ }
105706
+ }
105707
+ onPriorityActionRecommendationClick(recommendationId) {
105708
+ const result = this.findRecommendationInSourceAnalyses(recommendationId);
105709
+ if (result) {
105710
+ this.modalService.navigateToSourceRecommendation(result.recommendation, result.strategy, result.objective, result.goal, result.sourceAnalysisRef, result.unifiedGoal, this.viewMode());
105711
+ }
105712
+ else {
105713
+ console.warn('[Priority Actions] Recommendation not found in loaded source analyses. ID:', recommendationId);
105714
+ }
105715
+ }
105716
+ findRecommendationInSourceAnalyses(recommendationId) {
105717
+ const sourceAnalysesMap = this.sourceAnalysesMap();
105718
+ const unifiedGoals = this.unifiedGoals();
105719
+ for (const [analysisId, analysis] of sourceAnalysesMap.entries()) {
105720
+ const structured = analysis.profileAnalysisStructured;
105721
+ const goals = structured?.strategicRoadmap?.goals || [];
105722
+ for (const goal of goals) {
105723
+ for (const objective of goal.objectives || []) {
105724
+ for (const strategy of objective.strategies || []) {
105725
+ for (const recommendation of strategy.recommendations || []) {
105726
+ if (recommendation.id === recommendationId) {
105727
+ const unifiedGoal = unifiedGoals.find(ug => ug.sourceAnalyses?.some(sa => sa.analysisId === analysisId && sa.sourceGoalId === goal.id));
105728
+ if (unifiedGoal) {
105729
+ const sourceAnalysisRef = unifiedGoal.sourceAnalyses?.find(sa => sa.analysisId === analysisId && sa.sourceGoalId === goal.id);
105730
+ if (sourceAnalysisRef) {
105731
+ return {
105732
+ recommendation,
105733
+ strategy,
105734
+ objective,
105735
+ goal,
105736
+ sourceAnalysisRef,
105737
+ unifiedGoal
105738
+ };
105739
+ }
105740
+ }
105741
+ }
105742
+ }
105743
+ }
105744
+ }
105745
+ }
105746
+ }
105747
+ return null;
105748
+ }
105562
105749
  onSourceBadgeClick(event, source, goal) {
105563
105750
  event.stopPropagation();
105564
105751
  const analysisId = source.analysisId;
@@ -105610,6 +105797,34 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105610
105797
  this.modalService.openMetricsListModal(metrics, this.allCharts(), { title: goal.title || '', description: goal.description || '', businessContext: '', priority: 0 });
105611
105798
  }
105612
105799
  }
105800
+ handleSourceAnalysisClickFromModal(source) {
105801
+ const analysisId = source.analysisId;
105802
+ if (analysisId === undefined)
105803
+ return;
105804
+ const existingAnalysis = this.sourceAnalysesMap().get(analysisId);
105805
+ if (existingAnalysis) {
105806
+ this.openSourceGoalModal(existingAnalysis, source.sourceGoalId);
105807
+ }
105808
+ else {
105809
+ this.loadingSourceAnalysisId.set(analysisId);
105810
+ this.pendingSourceRequest.set(source);
105811
+ this.sourceAnalysisRequest.emit({
105812
+ analysisType: source.analysisType,
105813
+ analysisId: analysisId,
105814
+ sourceGoalId: source.sourceGoalId
105815
+ });
105816
+ }
105817
+ }
105818
+ openSourceGoalModal(analysis, sourceGoalId) {
105819
+ const structured = analysis.profileAnalysisStructured;
105820
+ const goals = structured?.strategicRoadmap?.goals || [];
105821
+ const goal = goals.find(g => g.id === sourceGoalId);
105822
+ if (goal) {
105823
+ this.modalService.openGoalDetailModal(goal, this.viewMode());
105824
+ }
105825
+ this.loadingSourceAnalysisId.set(undefined);
105826
+ this.pendingSourceRequest.set(undefined);
105827
+ }
105613
105828
  onShopGoalsClick() {
105614
105829
  const element = document.getElementById('section-unified-goals');
105615
105830
  if (element) {
@@ -105881,7 +106096,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105881
106096
  static { this.ɵfac = function SymphiqProfileAnalysisUnifiedDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqProfileAnalysisUnifiedDashboardComponent)(); }; }
105882
106097
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqProfileAnalysisUnifiedDashboardComponent, selectors: [["symphiq-profile-analysis-unified-dashboard"]], hostBindings: function SymphiqProfileAnalysisUnifiedDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
105883
106098
  i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisUnifiedDashboardComponent_scroll_HostBindingHandler() { return ctx.onScroll(); }, i0.ɵɵresolveWindow);
105884
- } }, 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, "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, "priorityActionItemClick", "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) {
106099
+ } }, 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: 31, 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"], [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) {
105885
106100
  i0.ɵɵelementStart(0, "div", 0);
105886
106101
  i0.ɵɵelement(1, "div", 1)(2, "symphiq-scroll-progress-bar", 2);
105887
106102
  i0.ɵɵelementStart(3, "div", 3)(4, "symphiq-dashboard-header", 4);
@@ -105895,13 +106110,11 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105895
106110
  i0.ɵɵconditionalCreate(9, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_9_Template, 1, 3, "symphiq-view-mode-switcher-modal", 9);
105896
106111
  i0.ɵɵconditionalCreate(10, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_10_Template, 1, 3, "symphiq-mark-as-reviewed-footer", 10);
105897
106112
  i0.ɵɵconditionalCreate(11, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_11_Template, 1, 5, "symphiq-content-generation-progress-with-confetti", 11);
105898
- i0.ɵɵelementStart(12, "symphiq-mobile-fab", 12);
105899
- 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(); });
105900
- i0.ɵɵelementEnd();
105901
- i0.ɵɵelementStart(13, "symphiq-mobile-bottom-nav", 13);
105902
- i0.ɵɵlistener("navigate", function SymphiqProfileAnalysisUnifiedDashboardComponent_Template_symphiq_mobile_bottom_nav_navigate_13_listener($event) { return ctx.handleMobileNavigation($event); });
106113
+ i0.ɵɵelement(12, "symphiq-tooltip-container");
106114
+ i0.ɵɵelementStart(13, "symphiq-unified-dashboard-modal", 12);
106115
+ 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); });
105903
106116
  i0.ɵɵelementEnd();
105904
- i0.ɵɵelement(14, "symphiq-tooltip-container")(15, "symphiq-unified-dashboard-modal", 14)(16, "symphiq-business-analysis-modal", 15)(17, "symphiq-profile-analysis-modal", 16);
106117
+ i0.ɵɵelement(14, "symphiq-business-analysis-modal", 13)(15, "symphiq-profile-analysis-modal", 14);
105905
106118
  i0.ɵɵelementEnd();
105906
106119
  } if (rf & 2) {
105907
106120
  i0.ɵɵclassProp("min-h-screen", !ctx.embedded());
@@ -105925,16 +106138,12 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105925
106138
  i0.ɵɵconditional(ctx.shouldShowReviewFooter() ? 10 : -1);
105926
106139
  i0.ɵɵadvance();
105927
106140
  i0.ɵɵconditional(!ctx.isLoading() && ctx.isGenerating() ? 11 : -1);
105928
- i0.ɵɵadvance();
105929
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("isCompactMode", ctx.isCompactView())("isExpanded", ctx.fabExpanded());
105930
- i0.ɵɵadvance();
105931
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("sections", ctx.mobileNavSections)("activeSection", ctx.activeNavSection());
105932
106141
  i0.ɵɵadvance(2);
105933
106142
  i0.ɵɵproperty("viewMode", ctx.viewMode());
105934
106143
  i0.ɵɵadvance();
105935
106144
  i0.ɵɵproperty("isLightMode", ctx.isLightMode());
105936
106145
  i0.ɵɵadvance();
105937
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(36, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
106146
+ i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(30, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
105938
106147
  } }, dependencies: [CommonModule, i1$1.NgClass, DashboardHeaderComponent,
105939
106148
  ScrollProgressBarComponent,
105940
106149
  SearchModalComponent,
@@ -105948,8 +106157,6 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105948
106157
  LoadingCardComponent,
105949
106158
  MarkAsReviewedFooterComponent,
105950
106159
  ProfileAnalysisModalComponent,
105951
- MobileFABComponent,
105952
- MobileBottomNavComponent,
105953
106160
  UnifiedGoalCardComponent,
105954
106161
  UnifiedExecutiveSummaryComponent,
105955
106162
  UnifiedTimelineComponent,
@@ -105957,7 +106164,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105957
106164
  UnifiedNextStepsComponent,
105958
106165
  TooltipContainerComponent,
105959
106166
  UnifiedDashboardModalComponent,
105960
- BusinessAnalysisModalComponent], encapsulation: 2, changeDetection: 0 }); }
106167
+ BusinessAnalysisModalComponent,
106168
+ UnifiedWelcomeBannerComponent], encapsulation: 2, changeDetection: 0 }); }
105961
106169
  }
105962
106170
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqProfileAnalysisUnifiedDashboardComponent, [{
105963
106171
  type: Component,
@@ -105975,13 +106183,10 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105975
106183
  GradeBadgeComponent,
105976
106184
  SectionDividerComponent,
105977
106185
  SectionHeaderComponent,
105978
- SymphiqIconComponent,
105979
106186
  ContentGenerationProgressWithConfettiComponent,
105980
106187
  LoadingCardComponent,
105981
106188
  MarkAsReviewedFooterComponent,
105982
106189
  ProfileAnalysisModalComponent,
105983
- MobileFABComponent,
105984
- MobileBottomNavComponent,
105985
106190
  UnifiedGoalCardComponent,
105986
106191
  UnifiedExecutiveSummaryComponent,
105987
106192
  UnifiedTimelineComponent,
@@ -105989,7 +106194,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105989
106194
  UnifiedNextStepsComponent,
105990
106195
  TooltipContainerComponent,
105991
106196
  UnifiedDashboardModalComponent,
105992
- BusinessAnalysisModalComponent
106197
+ BusinessAnalysisModalComponent,
106198
+ UnifiedWelcomeBannerComponent
105993
106199
  ],
105994
106200
  changeDetection: ChangeDetectionStrategy.OnPush,
105995
106201
  template: `
@@ -106047,28 +106253,16 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106047
106253
 
106048
106254
  @if (isSimplifiedView() && !isLoading() && !isGenerating()) {
106049
106255
  <!-- Welcome Banner -->
106050
- <div class="mb-12">
106051
- <div [ngClass]="welcomeBannerClasses()" class="rounded-2xl p-8 shadow-xl animate-fade-in-up">
106052
- <div class="flex items-start gap-6">
106053
- <div [ngClass]="welcomeIconClasses()" class="p-4 rounded-xl flex-shrink-0">
106054
- <svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
106055
- <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>
106056
- </svg>
106057
- </div>
106058
- <div class="flex-1">
106059
- <h1 [ngClass]="welcomeTitleClasses()" class="text-2xl font-bold mb-2">
106060
- Unified Goals for {{ businessName() }}
106061
- </h1>
106062
- <p [ngClass]="welcomeSubtitleClasses()" class="text-lg mb-4">
106063
- We've synthesized {{ unifiedGoals().length }} unified goals from {{ sourceAnalysesCount() }} source analyses.
106064
- </p>
106065
- <p [ngClass]="welcomeDescriptionClasses()" class="text-sm">
106066
- These goals combine insights from your shop analysis, focus areas, and metric analyses into actionable strategic priorities.
106067
- </p>
106068
- </div>
106069
- </div>
106070
- </div>
106071
- </div>
106256
+ <symphiq-unified-welcome-banner
106257
+ class="mb-12 block"
106258
+ [viewMode]="viewMode()"
106259
+ [businessName]="businessName()"
106260
+ [isOnboarded]="isOnboarded()"
106261
+ [analysisDate]="unifiedAnalysisDate()"
106262
+ [isUnifiedAnalysisComplete]="!isLoading() && !isGenerating()"
106263
+ [sourceAnalysesCount]="sourceAnalysesCount()"
106264
+ [unifiedGoalsCount]="unifiedGoals().length"
106265
+ />
106072
106266
 
106073
106267
  <!-- Executive Summary -->
106074
106268
  <symphiq-unified-executive-summary
@@ -106077,7 +106271,6 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106077
106271
  [shopCounts]="shopCounts()"
106078
106272
  [focusAreaCounts]="focusAreaCounts()"
106079
106273
  [metricCounts]="metricCounts()"
106080
- (priorityActionItemClick)="onPriorityActionItemClick($event)"
106081
106274
  (viewAllPriorityActionsClick)="onViewAllPriorityActionsClick()"
106082
106275
  />
106083
106276
 
@@ -106213,27 +106406,14 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106213
106406
  />
106214
106407
  }
106215
106408
 
106216
- <!-- Mobile FAB -->
106217
- <symphiq-mobile-fab
106218
- [isLightMode]="isLightMode()"
106219
- [isCompactMode]="isCompactView()"
106220
- [isExpanded]="fabExpanded()"
106221
- (expandedChange)="fabExpanded.set($event)"
106222
- (scrollToTop)="scrollToTop()"
106223
- (toggleView)="openViewModeSwitcher()"
106224
- />
106409
+ <symphiq-tooltip-container/>
106225
106410
 
106226
- <!-- Mobile Bottom Navigation -->
106227
- <symphiq-mobile-bottom-nav
106228
- [isLightMode]="isLightMode()"
106229
- [sections]="mobileNavSections"
106230
- [activeSection]="activeNavSection()"
106231
- (navigate)="handleMobileNavigation($event)"
106411
+ <symphiq-unified-dashboard-modal
106412
+ [viewMode]="viewMode()"
106413
+ (priorityActionGoalClick)="onPriorityActionGoalClick($event)"
106414
+ (priorityActionRecommendationClick)="onPriorityActionRecommendationClick($event)"
106415
+ (sourceAnalysisClickRequest)="handleSourceAnalysisClickFromModal($event)"
106232
106416
  />
106233
-
106234
- <symphiq-tooltip-container></symphiq-tooltip-container>
106235
-
106236
- <symphiq-unified-dashboard-modal [viewMode]="viewMode()" />
106237
106417
  <symphiq-business-analysis-modal [isLightMode]="isLightMode()" />
106238
106418
  <symphiq-profile-analysis-modal
106239
106419
  [isLightMode]="isLightMode()"
@@ -106248,7 +106428,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106248
106428
  type: HostListener,
106249
106429
  args: ['window:scroll']
106250
106430
  }] }); })();
106251
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 374 }); })();
106431
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 342 }); })();
106252
106432
 
106253
106433
  function SymphiqProfileMetricsAnalysesDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
106254
106434
  const _r1 = i0.ɵɵgetCurrentView();