@eric-emg/symphiq-components 1.2.145 → 1.2.146

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.
@@ -56362,6 +56362,244 @@ class CollapsibleSectionGroupComponent {
56362
56362
  }], null, { sections: [{ type: i0.Input, args: [{ isSignal: true, alias: "sections", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }] }); })();
56363
56363
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollapsibleSectionGroupComponent, { className: "CollapsibleSectionGroupComponent", filePath: "lib/components/business-analysis-dashboard/collapsible-section-group.component.ts", lineNumber: 100 }); })();
56364
56364
 
56365
+ function ContentGenerationProgressComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
56366
+ i0.ɵɵelement(0, "div", 26);
56367
+ } if (rf & 2) {
56368
+ const ctx_r0 = i0.ɵɵnextContext();
56369
+ i0.ɵɵstyleProp("left", ctx_r0.progressPercentage(), "%");
56370
+ i0.ɵɵproperty("ngClass", ctx_r0.progressGlowClasses());
56371
+ } }
56372
+ class ContentGenerationProgressComponent {
56373
+ constructor() {
56374
+ this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
56375
+ this.title = input('Generating Your Analysis', ...(ngDevMode ? [{ debugName: "title" }] : []));
56376
+ this.subtitle = input('This will appear when ready. You can check back later as this will take a few minutes to complete.', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
56377
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
56378
+ this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
56379
+ this.progressPercentage = computed(() => {
56380
+ const status = this.itemStatus();
56381
+ if (!status?.percentageComplete)
56382
+ return 0;
56383
+ return Math.min(100, Math.max(0, status.percentageComplete));
56384
+ }, ...(ngDevMode ? [{ debugName: "progressPercentage" }] : []));
56385
+ this.progressMessage = computed(() => {
56386
+ const status = this.itemStatus();
56387
+ return status?.message || 'Initializing';
56388
+ }, ...(ngDevMode ? [{ debugName: "progressMessage" }] : []));
56389
+ this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
56390
+ this.containerClasses = computed(() => {
56391
+ return this.isLightMode()
56392
+ ? 'bg-gradient-to-br from-slate-50 to-white'
56393
+ : 'bg-gradient-to-br from-slate-900 to-slate-800';
56394
+ }, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
56395
+ this.iconContainerClasses = computed(() => {
56396
+ if (this.isLightMode()) {
56397
+ return 'bg-gradient-to-br from-blue-500 to-purple-500 text-white shadow-lg shadow-blue-500/30';
56398
+ }
56399
+ return 'bg-gradient-to-br from-blue-400 to-purple-400 text-white shadow-lg shadow-blue-400/30';
56400
+ }, ...(ngDevMode ? [{ debugName: "iconContainerClasses" }] : []));
56401
+ this.titleClasses = computed(() => {
56402
+ if (this.isLightMode()) {
56403
+ return 'bg-gradient-to-r from-blue-600 via-purple-600 to-blue-600 bg-clip-text text-transparent';
56404
+ }
56405
+ return 'bg-gradient-to-r from-blue-400 via-purple-400 to-blue-400 bg-clip-text text-transparent';
56406
+ }, ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
56407
+ this.subtitleClasses = computed(() => {
56408
+ return this.isLightMode()
56409
+ ? 'text-slate-600'
56410
+ : 'text-slate-400';
56411
+ }, ...(ngDevMode ? [{ debugName: "subtitleClasses" }] : []));
56412
+ this.progressMessageClasses = computed(() => {
56413
+ return this.isLightMode()
56414
+ ? 'text-slate-700'
56415
+ : 'text-slate-300';
56416
+ }, ...(ngDevMode ? [{ debugName: "progressMessageClasses" }] : []));
56417
+ this.progressBarContainerClasses = computed(() => {
56418
+ return 'w-full';
56419
+ }, ...(ngDevMode ? [{ debugName: "progressBarContainerClasses" }] : []));
56420
+ this.progressBarBackgroundClasses = computed(() => {
56421
+ return this.isLightMode()
56422
+ ? 'bg-slate-200'
56423
+ : 'bg-slate-700';
56424
+ }, ...(ngDevMode ? [{ debugName: "progressBarBackgroundClasses" }] : []));
56425
+ this.progressBarFillClasses = computed(() => {
56426
+ if (this.isLightMode()) {
56427
+ return 'bg-gradient-to-r from-blue-500 via-cyan-500 to-blue-600 shadow-lg shadow-blue-500/40';
56428
+ }
56429
+ return 'bg-gradient-to-r from-blue-400 via-cyan-400 to-blue-500 shadow-lg shadow-blue-400/40';
56430
+ }, ...(ngDevMode ? [{ debugName: "progressBarFillClasses" }] : []));
56431
+ this.dotClasses = computed(() => {
56432
+ return this.isLightMode()
56433
+ ? 'bg-blue-400 shadow-lg shadow-blue-400/60'
56434
+ : 'bg-cyan-300 shadow-lg shadow-cyan-300/60';
56435
+ }, ...(ngDevMode ? [{ debugName: "dotClasses" }] : []));
56436
+ this.progressGlowClasses = computed(() => {
56437
+ return this.isLightMode()
56438
+ ? 'bg-blue-400 shadow-xl'
56439
+ : 'bg-cyan-300 shadow-xl';
56440
+ }, ...(ngDevMode ? [{ debugName: "progressGlowClasses" }] : []));
56441
+ this.percentageClasses = computed(() => {
56442
+ return this.isLightMode()
56443
+ ? 'text-slate-600'
56444
+ : 'text-slate-400';
56445
+ }, ...(ngDevMode ? [{ debugName: "percentageClasses" }] : []));
56446
+ }
56447
+ static { this.ɵfac = function ContentGenerationProgressComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContentGenerationProgressComponent)(); }; }
56448
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressComponent, selectors: [["symphiq-content-generation-progress"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"] }, decls: 31, vars: 21, consts: [[1, "min-h-[60vh]", "flex", "items-center", "justify-center", "px-4", "py-12", 3, "ngClass"], [1, "max-w-3xl", "w-full", "space-y-8"], [1, "text-center", "space-y-3"], [1, "flex", "items-center", "justify-center", "mb-4"], [1, "relative", "w-20", "h-20", "rounded-2xl", "flex", "items-center", "justify-center", "icon-pulse", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-10", "h-10"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"], [1, "absolute", "inset-0", "rounded-2xl", "icon-glow"], [1, "text-3xl", "sm:text-4xl", "font-bold", 3, "ngClass"], [1, "text-base", "sm:text-lg", "max-w-2xl", "mx-auto", 3, "ngClass"], [1, "space-y-4"], [1, "text-center"], [1, "text-lg", "sm:text-xl", "font-medium", "message-fade", 3, "ngClass"], [1, "relative", "h-3", "rounded-full", "overflow-visible", 3, "ngClass"], [1, "absolute", "inset-0", "rounded-full", 3, "ngClass"], [1, "absolute", "inset-y-0", "left-0", "rounded-full", "transition-all", "duration-700", "ease-out", "overflow-hidden", 3, "ngClass"], [1, "absolute", "inset-0", "shimmer-effect"], [1, "absolute", "inset-0", "overflow-hidden", "rounded-full"], [1, "dots-container", "h-full"], [1, "dot", "dot-1", 3, "ngClass"], [1, "dot", "dot-2", 3, "ngClass"], [1, "dot", "dot-3", 3, "ngClass"], [1, "dot", "dot-4", 3, "ngClass"], [1, "dot", "dot-5", 3, "ngClass"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass", "left"], [1, "text-sm", "font-medium", "tabular-nums", 3, "ngClass"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass"]], template: function ContentGenerationProgressComponent_Template(rf, ctx) { if (rf & 1) {
56449
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
56450
+ i0.ɵɵnamespaceSVG();
56451
+ i0.ɵɵelementStart(5, "svg", 5);
56452
+ i0.ɵɵelement(6, "path", 6);
56453
+ i0.ɵɵelementEnd();
56454
+ i0.ɵɵnamespaceHTML();
56455
+ i0.ɵɵelement(7, "div", 7);
56456
+ i0.ɵɵelementEnd()();
56457
+ i0.ɵɵelementStart(8, "h2", 8);
56458
+ i0.ɵɵtext(9);
56459
+ i0.ɵɵelementEnd();
56460
+ i0.ɵɵelementStart(10, "p", 9);
56461
+ i0.ɵɵtext(11);
56462
+ i0.ɵɵelementEnd()();
56463
+ i0.ɵɵelementStart(12, "div", 10)(13, "div", 11)(14, "p", 12);
56464
+ i0.ɵɵtext(15);
56465
+ i0.ɵɵelementEnd()();
56466
+ i0.ɵɵelementStart(16, "div", 13);
56467
+ i0.ɵɵelement(17, "div", 14);
56468
+ i0.ɵɵelementStart(18, "div", 15);
56469
+ i0.ɵɵelement(19, "div", 16);
56470
+ i0.ɵɵelementEnd();
56471
+ i0.ɵɵelementStart(20, "div", 17)(21, "div", 18);
56472
+ i0.ɵɵelement(22, "div", 19)(23, "div", 20)(24, "div", 21)(25, "div", 22)(26, "div", 23);
56473
+ i0.ɵɵelementEnd()();
56474
+ i0.ɵɵconditionalCreate(27, ContentGenerationProgressComponent_Conditional_27_Template, 1, 3, "div", 24);
56475
+ i0.ɵɵelementEnd();
56476
+ i0.ɵɵelementStart(28, "div", 11)(29, "span", 25);
56477
+ i0.ɵɵtext(30);
56478
+ i0.ɵɵelementEnd()()()()();
56479
+ } if (rf & 2) {
56480
+ i0.ɵɵproperty("ngClass", ctx.containerClasses());
56481
+ i0.ɵɵadvance(4);
56482
+ i0.ɵɵproperty("ngClass", ctx.iconContainerClasses());
56483
+ i0.ɵɵadvance(4);
56484
+ i0.ɵɵproperty("ngClass", ctx.titleClasses());
56485
+ i0.ɵɵadvance();
56486
+ i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
56487
+ i0.ɵɵadvance();
56488
+ i0.ɵɵproperty("ngClass", ctx.subtitleClasses());
56489
+ i0.ɵɵadvance();
56490
+ i0.ɵɵtextInterpolate1(" ", ctx.subtitle(), " ");
56491
+ i0.ɵɵadvance(3);
56492
+ i0.ɵɵproperty("ngClass", ctx.progressMessageClasses());
56493
+ i0.ɵɵadvance();
56494
+ i0.ɵɵtextInterpolate1(" ", ctx.progressMessage(), " ");
56495
+ i0.ɵɵadvance();
56496
+ i0.ɵɵproperty("ngClass", ctx.progressBarContainerClasses());
56497
+ i0.ɵɵadvance();
56498
+ i0.ɵɵproperty("ngClass", ctx.progressBarBackgroundClasses());
56499
+ i0.ɵɵadvance();
56500
+ i0.ɵɵstyleProp("width", ctx.progressPercentage(), "%");
56501
+ i0.ɵɵproperty("ngClass", ctx.progressBarFillClasses());
56502
+ i0.ɵɵadvance(4);
56503
+ i0.ɵɵproperty("ngClass", ctx.dotClasses());
56504
+ i0.ɵɵadvance();
56505
+ i0.ɵɵproperty("ngClass", ctx.dotClasses());
56506
+ i0.ɵɵadvance();
56507
+ i0.ɵɵproperty("ngClass", ctx.dotClasses());
56508
+ i0.ɵɵadvance();
56509
+ i0.ɵɵproperty("ngClass", ctx.dotClasses());
56510
+ i0.ɵɵadvance();
56511
+ i0.ɵɵproperty("ngClass", ctx.dotClasses());
56512
+ i0.ɵɵadvance();
56513
+ i0.ɵɵconditional(ctx.progressPercentage() > 0 && ctx.progressPercentage() < 100 ? 27 : -1);
56514
+ i0.ɵɵadvance(2);
56515
+ i0.ɵɵproperty("ngClass", ctx.percentageClasses());
56516
+ i0.ɵɵadvance();
56517
+ i0.ɵɵtextInterpolate1(" ", ctx.progressPercentage(), "% complete ");
56518
+ } }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes _ngcontent-%COMP%_icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes _ngcontent-%COMP%_shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes _ngcontent-%COMP%_dots-move{0%{transform:translate(-20px);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translate(calc(100vw + 20px));opacity:0}}@keyframes _ngcontent-%COMP%_message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-pulse 2s ease-in-out infinite}.icon-glow[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect[_ngcontent-%COMP%]{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:_ngcontent-%COMP%_shimmer 2s ease-in-out infinite}.message-fade[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_message-fade 3s ease-in-out infinite}.dots-container[_ngcontent-%COMP%]{position:relative;width:100%}.dot[_ngcontent-%COMP%]{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;transform:translateY(-50%);animation:_ngcontent-%COMP%_dots-move 3s linear infinite}.dot-1[_ngcontent-%COMP%]{animation-delay:0s}.dot-2[_ngcontent-%COMP%]{animation-delay:.6s}.dot-3[_ngcontent-%COMP%]{animation-delay:1.2s}.dot-4[_ngcontent-%COMP%]{animation-delay:1.8s}.dot-5[_ngcontent-%COMP%]{animation-delay:2.4s}@media (prefers-reduced-motion: reduce){.icon-pulse[_ngcontent-%COMP%], .icon-glow[_ngcontent-%COMP%], .shimmer-effect[_ngcontent-%COMP%], .message-fade[_ngcontent-%COMP%], .dot[_ngcontent-%COMP%]{animation:none}}"], changeDetection: 0 }); }
56519
+ }
56520
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContentGenerationProgressComponent, [{
56521
+ type: Component,
56522
+ args: [{ selector: 'symphiq-content-generation-progress', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
56523
+ <div [ngClass]="containerClasses()" class="min-h-[60vh] flex items-center justify-center px-4 py-12">
56524
+ <div class="max-w-3xl w-full space-y-8">
56525
+ <!-- Title Section -->
56526
+ <div class="text-center space-y-3">
56527
+ <div class="flex items-center justify-center mb-4">
56528
+ <div [ngClass]="iconContainerClasses()" class="relative w-20 h-20 rounded-2xl flex items-center justify-center icon-pulse">
56529
+ <svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24">
56530
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path>
56531
+ </svg>
56532
+ <div class="absolute inset-0 rounded-2xl icon-glow"></div>
56533
+ </div>
56534
+ </div>
56535
+
56536
+ <h2 [ngClass]="titleClasses()" class="text-3xl sm:text-4xl font-bold">
56537
+ {{ title() }}
56538
+ </h2>
56539
+
56540
+ <p [ngClass]="subtitleClasses()" class="text-base sm:text-lg max-w-2xl mx-auto">
56541
+ {{ subtitle() }}
56542
+ </p>
56543
+ </div>
56544
+
56545
+ <!-- Progress Section -->
56546
+ <div class="space-y-4">
56547
+ <!-- Progress Message -->
56548
+ <div class="text-center">
56549
+ <p [ngClass]="progressMessageClasses()" class="text-lg sm:text-xl font-medium message-fade">
56550
+ {{ progressMessage() }}
56551
+ </p>
56552
+ </div>
56553
+
56554
+ <!-- Progress Bar Container -->
56555
+ <div [ngClass]="progressBarContainerClasses()" class="relative h-3 rounded-full overflow-visible">
56556
+ <!-- Background Track -->
56557
+ <div [ngClass]="progressBarBackgroundClasses()" class="absolute inset-0 rounded-full"></div>
56558
+
56559
+ <!-- Solid Fill with Gradient -->
56560
+ <div
56561
+ [ngClass]="progressBarFillClasses()"
56562
+ [style.width.%]="progressPercentage()"
56563
+ class="absolute inset-y-0 left-0 rounded-full transition-all duration-700 ease-out overflow-hidden">
56564
+ <!-- Inner shimmer effect -->
56565
+ <div class="absolute inset-0 shimmer-effect"></div>
56566
+ </div>
56567
+
56568
+ <!-- Animated Dots Overlay (shows beyond the solid bar) -->
56569
+ <div class="absolute inset-0 overflow-hidden rounded-full">
56570
+ <div class="dots-container h-full">
56571
+ <div [ngClass]="dotClasses()" class="dot dot-1"></div>
56572
+ <div [ngClass]="dotClasses()" class="dot dot-2"></div>
56573
+ <div [ngClass]="dotClasses()" class="dot dot-3"></div>
56574
+ <div [ngClass]="dotClasses()" class="dot dot-4"></div>
56575
+ <div [ngClass]="dotClasses()" class="dot dot-5"></div>
56576
+ </div>
56577
+ </div>
56578
+
56579
+ <!-- Glow effect at the progress edge -->
56580
+ @if (progressPercentage() > 0 && progressPercentage() < 100) {
56581
+ <div
56582
+ [ngClass]="progressGlowClasses()"
56583
+ [style.left.%]="progressPercentage()"
56584
+ class="absolute top-1/2 -translate-y-1/2 w-4 h-4 rounded-full blur-md transition-all duration-700 ease-out"
56585
+ style="margin-left: -8px;">
56586
+ </div>
56587
+ }
56588
+ </div>
56589
+
56590
+ <!-- Progress Percentage -->
56591
+ <div class="text-center">
56592
+ <span [ngClass]="percentageClasses()" class="text-sm font-medium tabular-nums">
56593
+ {{ progressPercentage() }}% complete
56594
+ </span>
56595
+ </div>
56596
+ </div>
56597
+ </div>
56598
+ </div>
56599
+ `, styles: ["@keyframes icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes dots-move{0%{transform:translate(-20px);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translate(calc(100vw + 20px));opacity:0}}@keyframes message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse{animation:icon-pulse 2s ease-in-out infinite}.icon-glow{animation:icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s ease-in-out infinite}.message-fade{animation:message-fade 3s ease-in-out infinite}.dots-container{position:relative;width:100%}.dot{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;transform:translateY(-50%);animation:dots-move 3s linear infinite}.dot-1{animation-delay:0s}.dot-2{animation-delay:.6s}.dot-3{animation-delay:1.2s}.dot-4{animation-delay:1.8s}.dot-5{animation-delay:2.4s}@media (prefers-reduced-motion: reduce){.icon-pulse,.icon-glow,.shimmer-effect,.message-fade,.dot{animation:none}}\n"] }]
56600
+ }], null, { itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }] }); })();
56601
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressComponent, { className: "ContentGenerationProgressComponent", filePath: "lib/components/shared/content-generation-progress.component.ts", lineNumber: 214 }); })();
56602
+
56365
56603
  const _c0$n = () => [];
56366
56604
  function SymphiqBusinessAnalysisDashboardComponent_Conditional_29_Conditional_3_Template(rf, ctx) { if (rf & 1) {
56367
56605
  i0.ɵɵelementStart(0, "span", 26);
@@ -56397,64 +56635,89 @@ function SymphiqBusinessAnalysisDashboardComponent_Conditional_29_Template(rf, c
56397
56635
  i0.ɵɵconditional(ctx_r0.currentSubsectionTitle() ? 3 : -1);
56398
56636
  } }
56399
56637
  function SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Conditional_0_Template(rf, ctx) { if (rf & 1) {
56400
- const _r3 = i0.ɵɵgetCurrentView();
56401
- i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 32);
56402
- i0.ɵɵlistener("stepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.stepClick.emit($event)); })("nextStepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.nextStepClick.emit()); });
56638
+ const _r2 = i0.ɵɵgetCurrentView();
56639
+ i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 29);
56640
+ i0.ɵɵlistener("stepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.stepClick.emit($event)); })("nextStepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.nextStepClick.emit()); });
56403
56641
  i0.ɵɵelementEnd();
56404
56642
  } if (rf & 2) {
56405
56643
  const ctx_r0 = i0.ɵɵnextContext(2);
56406
- i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("currentStepId", ctx_r0.JourneyStepIdEnum.BUSINESS_ANALYSIS)("showNextStepAction", ctx_r0.showNextStepAction())("forDemo", ctx_r0.forDemo())("maxAccessibleStepId", ctx_r0.maxAccessibleStepId());
56644
+ i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("currentStepId", ctx_r0.JourneyStepIdEnum.BUSINESS_ANALYSIS)("showNextStepAction", false)("forDemo", ctx_r0.forDemo())("maxAccessibleStepId", ctx_r0.maxAccessibleStepId());
56407
56645
  } }
56408
56646
  function SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Template(rf, ctx) { if (rf & 1) {
56409
- const _r2 = i0.ɵɵgetCurrentView();
56410
56647
  i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 27);
56411
- i0.ɵɵelementStart(1, "div", 6)(2, "div", 28);
56412
- i0.ɵɵelement(3, "symphiq-welcome-banner", 29);
56648
+ i0.ɵɵelement(1, "symphiq-content-generation-progress", 28);
56649
+ } if (rf & 2) {
56650
+ let tmp_3_0;
56651
+ const ctx_r0 = i0.ɵɵnextContext();
56652
+ i0.ɵɵconditional(!ctx_r0.isOnboarded() ? 0 : -1);
56653
+ i0.ɵɵadvance();
56654
+ i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("title", "We are generating a new Business Analysis for " + (((tmp_3_0 = ctx_r0.currentProfile()) == null ? null : tmp_3_0.profileStructured == null ? null : tmp_3_0.profileStructured.businessName) || "your business") + ".")("subtitle", "It will appear here when ready. You can check back later as this will take a few minutes to complete.");
56655
+ } }
56656
+ function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
56657
+ const _r4 = i0.ɵɵgetCurrentView();
56658
+ i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 29);
56659
+ i0.ɵɵlistener("stepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_0_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.stepClick.emit($event)); })("nextStepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_0_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.nextStepClick.emit()); });
56660
+ i0.ɵɵelementEnd();
56661
+ } if (rf & 2) {
56662
+ const ctx_r0 = i0.ɵɵnextContext(3);
56663
+ i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("currentStepId", ctx_r0.JourneyStepIdEnum.BUSINESS_ANALYSIS)("showNextStepAction", ctx_r0.showNextStepAction())("forDemo", ctx_r0.forDemo())("maxAccessibleStepId", ctx_r0.maxAccessibleStepId());
56664
+ } }
56665
+ function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_0_Template(rf, ctx) { if (rf & 1) {
56666
+ const _r3 = i0.ɵɵgetCurrentView();
56667
+ i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_0_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 27);
56668
+ i0.ɵɵelementStart(1, "div", 6)(2, "div", 30);
56669
+ i0.ɵɵelement(3, "symphiq-welcome-banner", 31);
56413
56670
  i0.ɵɵelementEnd();
56414
- i0.ɵɵelementStart(4, "div", 28)(5, "symphiq-recommendations-tiled-grid", 30);
56415
- i0.ɵɵlistener("viewMoreClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Template_symphiq_recommendations_tiled_grid_viewMoreClick_5_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openRecommendationDetailsModal($event)); });
56671
+ i0.ɵɵelementStart(4, "div", 30)(5, "symphiq-recommendations-tiled-grid", 32);
56672
+ i0.ɵɵlistener("viewMoreClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_0_Template_symphiq_recommendations_tiled_grid_viewMoreClick_5_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openRecommendationDetailsModal($event)); });
56416
56673
  i0.ɵɵelementEnd()();
56417
56674
  i0.ɵɵelementStart(6, "div");
56418
- i0.ɵɵelement(7, "symphiq-collapsible-section-group", 31);
56675
+ i0.ɵɵelement(7, "symphiq-collapsible-section-group", 33);
56419
56676
  i0.ɵɵelementEnd()();
56420
56677
  } if (rf & 2) {
56421
- let tmp_3_0;
56422
- const ctx_r0 = i0.ɵɵnextContext();
56678
+ let tmp_4_0;
56679
+ const ctx_r0 = i0.ɵɵnextContext(2);
56423
56680
  i0.ɵɵconditional(!ctx_r0.isOnboarded() ? 0 : -1);
56424
56681
  i0.ɵɵadvance(3);
56425
- i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("businessName", ((tmp_3_0 = ctx_r0.currentProfile()) == null ? null : tmp_3_0.profileStructured == null ? null : tmp_3_0.profileStructured.businessName) || "your business")("isOnboarded", ctx_r0.isOnboarded());
56682
+ i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("businessName", ((tmp_4_0 = ctx_r0.currentProfile()) == null ? null : tmp_4_0.profileStructured == null ? null : tmp_4_0.profileStructured.businessName) || "your business")("isOnboarded", ctx_r0.isOnboarded());
56426
56683
  i0.ɵɵadvance(2);
56427
56684
  i0.ɵɵproperty("recommendations", ctx_r0.recommendationItems())("viewMode", ctx_r0.viewMode());
56428
56685
  i0.ɵɵadvance(2);
56429
56686
  i0.ɵɵproperty("sections", ctx_r0.nonRecommendationSections())("viewMode", ctx_r0.viewMode());
56430
56687
  } }
56431
- function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
56432
- i0.ɵɵelementStart(0, "div", 34);
56433
- i0.ɵɵelement(1, "symphiq-section-divider", 35);
56688
+ function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_1_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
56689
+ i0.ɵɵelementStart(0, "div", 35);
56690
+ i0.ɵɵelement(1, "symphiq-section-divider", 36);
56434
56691
  i0.ɵɵelementEnd();
56435
56692
  } if (rf & 2) {
56436
- const ɵ$index_99_r4 = i0.ɵɵnextContext().$index;
56437
- const ctx_r0 = i0.ɵɵnextContext(2);
56693
+ const ɵ$index_106_r5 = i0.ɵɵnextContext().$index;
56694
+ const ctx_r0 = i0.ɵɵnextContext(3);
56438
56695
  i0.ɵɵadvance();
56439
- i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("subsections", ctx_r0.sections()[ɵ$index_99_r4 + 1].subsections || i0.ɵɵpureFunction0(2, _c0$n));
56696
+ i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("subsections", ctx_r0.sections()[ɵ$index_106_r5 + 1].subsections || i0.ɵɵpureFunction0(2, _c0$n));
56440
56697
  } }
56441
- function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_For_1_Template(rf, ctx) { if (rf & 1) {
56442
- i0.ɵɵelement(0, "symphiq-profile-section", 33);
56443
- i0.ɵɵconditionalCreate(1, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_For_1_Conditional_1_Template, 2, 3, "div", 34);
56698
+ function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_1_For_1_Template(rf, ctx) { if (rf & 1) {
56699
+ i0.ɵɵelement(0, "symphiq-profile-section", 34);
56700
+ i0.ɵɵconditionalCreate(1, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_1_For_1_Conditional_1_Template, 2, 3, "div", 35);
56444
56701
  } if (rf & 2) {
56445
- const section_r5 = ctx.$implicit;
56446
- const ɵ$index_99_r4 = ctx.$index;
56447
- const ɵ$count_99_r6 = ctx.$count;
56448
- const ctx_r0 = i0.ɵɵnextContext(2);
56449
- i0.ɵɵproperty("section", section_r5)("viewMode", ctx_r0.viewMode())("forceExpanded", !ctx_r0.isCompactView());
56702
+ const section_r6 = ctx.$implicit;
56703
+ const ɵ$index_106_r5 = ctx.$index;
56704
+ const ɵ$count_106_r7 = ctx.$count;
56705
+ const ctx_r0 = i0.ɵɵnextContext(3);
56706
+ i0.ɵɵproperty("section", section_r6)("viewMode", ctx_r0.viewMode())("forceExpanded", !ctx_r0.isCompactView());
56450
56707
  i0.ɵɵadvance();
56451
- i0.ɵɵconditional(!(ɵ$index_99_r4 === ɵ$count_99_r6 - 1) ? 1 : -1);
56708
+ i0.ɵɵconditional(!(ɵ$index_106_r5 === ɵ$count_106_r7 - 1) ? 1 : -1);
56709
+ } }
56710
+ function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_1_Template(rf, ctx) { if (rf & 1) {
56711
+ i0.ɵɵrepeaterCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_1_For_1_Template, 2, 4, null, null, i0.ɵɵcomponentInstance().trackBySectionId, true);
56712
+ } if (rf & 2) {
56713
+ const ctx_r0 = i0.ɵɵnextContext(2);
56714
+ i0.ɵɵrepeater(ctx_r0.sections());
56452
56715
  } }
56453
56716
  function SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Template(rf, ctx) { if (rf & 1) {
56454
- i0.ɵɵrepeaterCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_For_1_Template, 2, 4, null, null, i0.ɵɵcomponentInstance().trackBySectionId, true);
56717
+ i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_0_Template, 8, 8)(1, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Conditional_1_Template, 2, 0);
56455
56718
  } if (rf & 2) {
56456
56719
  const ctx_r0 = i0.ɵɵnextContext();
56457
- i0.ɵɵrepeater(ctx_r0.sections());
56720
+ i0.ɵɵconditional(ctx_r0.isSimplifiedView() ? 0 : 1);
56458
56721
  } }
56459
56722
  function SymphiqBusinessAnalysisDashboardComponent_Conditional_38_Template(rf, ctx) { if (rf & 1) {
56460
56723
  i0.ɵɵelement(0, "symphiq-section-navigation", 21);
@@ -56507,6 +56770,10 @@ class SymphiqBusinessAnalysisDashboardComponent {
56507
56770
  this.nextStepClick = output();
56508
56771
  this.JourneyStepIdEnum = JourneyStepIdEnum;
56509
56772
  this.showNextStepAction = computed(() => this.profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED, ...(ngDevMode ? [{ debugName: "showNextStepAction" }] : []));
56773
+ this.isContentGenerating = computed(() => {
56774
+ const status = this.profile()?.selfContentStatus;
56775
+ return status === AiDynamicContentStatusEnum.REQUESTED || status === AiDynamicContentStatusEnum.GENERATING;
56776
+ }, ...(ngDevMode ? [{ debugName: "isContentGenerating" }] : []));
56510
56777
  this.headerScrollService = inject(HeaderScrollService);
56511
56778
  this.lookupService = inject(ProfileItemLookupService);
56512
56779
  this.navigationService = inject(NavigationStateService);
@@ -56962,7 +57229,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
56962
57229
  static { this.ɵfac = function SymphiqBusinessAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqBusinessAnalysisDashboardComponent)(); }; }
56963
57230
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqBusinessAnalysisDashboardComponent, selectors: [["symphiq-business-analysis-dashboard"]], hostBindings: function SymphiqBusinessAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
56964
57231
  i0.ɵɵlistener("scroll", function SymphiqBusinessAnalysisDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onScroll($event); }, i0.ɵɵresolveWindow)("keydown", function SymphiqBusinessAnalysisDashboardComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); }, i0.ɵɵresolveDocument);
56965
- } }, inputs: { embedded: [1, "embedded"], profile: [1, "profile"], parentHeaderOffset: [1, "parentHeaderOffset"], requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isLoading: [1, "isLoading"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 46, vars: 63, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-2"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 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", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], [1, "relative"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "viewMode", "embedded"], [3, "viewInContextRequested", "isLightMode"], [3, "searchChange", "resultSelected", "close", "isLightMode", "isOpen", "searchQuery", "results", "hasResults", "selectedIndex", "placeholder"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode", "isLoading"], [1, "transition-opacity", "duration-300", 3, "ngClass"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "mb-8"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMoreClick", "recommendations", "viewMode"], [3, "sections", "viewMode"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "section", "viewMode", "forceExpanded"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8"], [3, "viewMode", "subsections"]], template: function SymphiqBusinessAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
57232
+ } }, inputs: { embedded: [1, "embedded"], profile: [1, "profile"], parentHeaderOffset: [1, "parentHeaderOffset"], requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isLoading: [1, "isLoading"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 46, vars: 63, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-2"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 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", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], [1, "relative"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "viewMode", "embedded"], [3, "viewInContextRequested", "isLightMode"], [3, "searchChange", "resultSelected", "close", "isLightMode", "isOpen", "searchQuery", "results", "hasResults", "selectedIndex", "placeholder"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode", "isLoading"], [1, "transition-opacity", "duration-300", 3, "ngClass"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "title", "subtitle"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "mb-8"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMoreClick", "recommendations", "viewMode"], [3, "sections", "viewMode"], [3, "section", "viewMode", "forceExpanded"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8"], [3, "viewMode", "subsections"]], template: function SymphiqBusinessAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
56966
57233
  i0.ɵɵelementStart(0, "div", 0)(1, "div");
56967
57234
  i0.ɵɵelement(2, "div", 1);
56968
57235
  i0.ɵɵelementEnd();
@@ -57002,7 +57269,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
57002
57269
  i0.ɵɵelementEnd()()()()()()();
57003
57270
  i0.ɵɵnamespaceHTML();
57004
57271
  i0.ɵɵelementStart(35, "main", 20);
57005
- i0.ɵɵconditionalCreate(36, SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Template, 8, 8)(37, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Template, 2, 0);
57272
+ i0.ɵɵconditionalCreate(36, SymphiqBusinessAnalysisDashboardComponent_Conditional_36_Template, 2, 4)(37, SymphiqBusinessAnalysisDashboardComponent_Conditional_37_Template, 2, 1);
57006
57273
  i0.ɵɵelementEnd();
57007
57274
  i0.ɵɵconditionalCreate(38, SymphiqBusinessAnalysisDashboardComponent_Conditional_38_Template, 1, 4, "symphiq-section-navigation", 21);
57008
57275
  i0.ɵɵconditionalCreate(39, SymphiqBusinessAnalysisDashboardComponent_Conditional_39_Template, 1, 4, "symphiq-floating-toc", 21);
@@ -57063,7 +57330,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
57063
57330
  i0.ɵɵadvance();
57064
57331
  i0.ɵɵproperty("ngClass", ctx.getViewModeButtonClasses());
57065
57332
  i0.ɵɵadvance(5);
57066
- i0.ɵɵconditional(ctx.isSimplifiedView() ? 36 : 37);
57333
+ i0.ɵɵconditional(ctx.isContentGenerating() ? 36 : 37);
57067
57334
  i0.ɵɵadvance(2);
57068
57335
  i0.ɵɵconditional(!ctx.isSimplifiedView() ? 38 : -1);
57069
57336
  i0.ɵɵadvance();
@@ -57078,232 +57345,254 @@ class SymphiqBusinessAnalysisDashboardComponent {
57078
57345
  i0.ɵɵproperty("isLightMode", ctx.isLightMode())("isOpen", ctx.searchService.isSearchOpen())("searchQuery", ctx.searchService.getSearchQuery())("results", ctx.searchService.searchResults())("hasResults", ctx.searchService.hasResults())("selectedIndex", ctx.selectedSearchIndex())("placeholder", "Search sections, items, and analysis...");
57079
57346
  i0.ɵɵadvance();
57080
57347
  i0.ɵɵproperty("isOpen", ctx.isViewModeSwitcherOpen())("currentMode", ctx.displayMode())("viewMode", ctx.viewMode())("isLoading", ctx.isViewModeSwitching());
57081
- } }, dependencies: [CommonModule, i1$1.NgClass, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent], styles: ["[_nghost-%COMP%]{display:block}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse-highlight{0%,to{transform:scale(1);box-shadow:0 0 #3b82f6b3}50%{transform:scale(1.02);box-shadow:0 0 20px 8px #3b82f64d}}[_nghost-%COMP%] .search-highlight-pulse{animation:_ngcontent-%COMP%_pulse-highlight 2s ease-in-out;border-color:#3b82f6!important}"], changeDetection: 0 }); }
57348
+ } }, dependencies: [CommonModule, i1$1.NgClass, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressComponent], styles: ["[_nghost-%COMP%]{display:block}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse-highlight{0%,to{transform:scale(1);box-shadow:0 0 #3b82f6b3}50%{transform:scale(1.02);box-shadow:0 0 20px 8px #3b82f64d}}[_nghost-%COMP%] .search-highlight-pulse{animation:_ngcontent-%COMP%_pulse-highlight 2s ease-in-out;border-color:#3b82f6!important}"], changeDetection: 0 }); }
57082
57349
  }
57083
57350
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqBusinessAnalysisDashboardComponent, [{
57084
57351
  type: Component,
57085
- args: [{ selector: 'symphiq-business-analysis-dashboard', standalone: true, imports: [CommonModule, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
57086
- <div [ngClass]="getContainerClasses()">
57087
- <!-- Scroll Progress Bar (fixed at top) -->
57088
- <div [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
57089
- <div
57090
- [style.width.%]="scrollProgress()"
57091
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
57092
- class="h-full transition-all duration-200 ease-out">
57093
- </div>
57094
- </div>
57095
-
57096
- <div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
57097
-
57098
- <div class="relative z-[51]">
57099
- <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
57100
- <!-- Expanded Header (default state) -->
57101
- <div
57102
- class="transition-all duration-300 ease-in-out overflow-hidden"
57103
- [class.max-h-0]="headerScrollService.isScrolled()"
57104
- [class.opacity-0]="headerScrollService.isScrolled()"
57105
- [class.max-h-96]="!headerScrollService.isScrolled()"
57106
- [class.opacity-100]="!headerScrollService.isScrolled()">
57107
- <div
57108
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
57109
- [class.pointer-events-none]="headerScrollService.isScrolled()"
57110
- [class.pointer-events-auto]="!headerScrollService.isScrolled()">
57111
- <div class="flex items-center justify-between">
57112
- <div>
57113
- <h1 [ngClass]="getMainTitleClasses()">
57114
- {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57115
- </h1>
57116
- <p [ngClass]="getSubtitleClasses()">
57117
- Business Profile & Analysis
57118
- </p>
57119
- </div>
57120
- <div class="flex items-center gap-2">
57121
- <symphiq-search-button
57122
- [isLightMode]="isLightMode()"
57123
- (searchClick)="openSearch()"
57124
- />
57125
- <button
57126
- type="button"
57127
- (click)="openViewModeSwitcher()"
57128
- [ngClass]="getViewModeButtonClasses()"
57129
- class="cursor-pointer flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
57130
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57131
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57132
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
57133
- </svg>
57134
- <span>{{ displayModeLabel() }}</span>
57135
- </button>
57136
- </div>
57137
- </div>
57138
- </div>
57139
- </div>
57140
-
57141
- <!-- Condensed Header (scrolled state) -->
57142
- <div
57143
- class="transition-all duration-300 ease-in-out overflow-hidden"
57144
- [class.max-h-0]="!headerScrollService.isScrolled()"
57145
- [class.opacity-0]="!headerScrollService.isScrolled()"
57146
- [class.max-h-20]="headerScrollService.isScrolled()"
57147
- [class.opacity-100]="headerScrollService.isScrolled()">
57148
- <div
57149
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
57150
- [class.pointer-events-none]="!headerScrollService.isScrolled()"
57151
- [class.pointer-events-auto]="headerScrollService.isScrolled()">
57152
- <div class="flex items-center justify-between">
57153
- <div class="flex-1 min-w-0 mr-4">
57154
- <h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent truncate'">
57155
- {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57156
- </h1>
57157
- </div>
57158
- <div class="flex items-center gap-4">
57159
- @if (!isSimplifiedView()) {
57160
- <div class="flex items-center gap-2 text-sm flex-shrink-0">
57161
- <span [ngClass]="isLightMode() ? 'text-slate-600 font-medium' : 'text-slate-400 font-medium'" class="transition-opacity duration-300" [class.opacity-0]="sectionTitleFading()" [class.opacity-100]="!sectionTitleFading()">
57162
- {{ currentSectionTitle() }}
57163
- </span>
57164
- @if (currentSubsectionTitle()) {
57165
- <span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
57166
- <span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
57167
- {{ currentSubsectionTitle() }}
57168
- </span>
57169
- }
57170
- </div>
57171
- }
57172
- <symphiq-search-button
57173
- [isLightMode]="isLightMode()"
57174
- [minimized]="true"
57175
- (searchClick)="openSearch()"
57176
- />
57177
- <button
57178
- type="button"
57179
- (click)="openViewModeSwitcher()"
57180
- [ngClass]="getViewModeButtonClasses()"
57181
- class="cursor-pointer flex items-center gap-2 px-2 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
57182
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57183
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57184
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
57185
- </svg>
57186
- </button>
57187
- </div>
57188
- </div>
57189
- </div>
57190
- </div>
57191
- </header>
57192
-
57193
- <main class="relative">
57194
- @if (isSimplifiedView()) {
57195
- <!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
57196
- @if (!isOnboarded()) {
57197
- <symphiq-journey-progress-indicator
57198
- [viewMode]="viewMode()"
57199
- [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
57200
- [showNextStepAction]="showNextStepAction()"
57201
- [forDemo]="forDemo()"
57202
- [maxAccessibleStepId]="maxAccessibleStepId()"
57203
- (stepClick)="stepClick.emit($event)"
57204
- (nextStepClick)="nextStepClick.emit()"
57205
- />
57206
- }
57207
-
57208
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
57209
- <div class="mb-8">
57210
- <symphiq-welcome-banner
57211
- [viewMode]="viewMode()"
57212
- [businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
57213
- [isOnboarded]="isOnboarded()"
57214
- />
57215
- </div>
57216
-
57217
- <div class="mb-8">
57218
- <symphiq-recommendations-tiled-grid
57219
- [recommendations]="recommendationItems()"
57220
- [viewMode]="viewMode()"
57221
- (viewMoreClick)="openRecommendationDetailsModal($event)"
57222
- />
57223
- </div>
57224
-
57225
- <div>
57226
- <symphiq-collapsible-section-group
57227
- [sections]="nonRecommendationSections()"
57228
- [viewMode]="viewMode()"
57229
- />
57230
- </div>
57231
- </div>
57232
- } @else {
57233
- @for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
57234
- <symphiq-profile-section
57235
- [section]="section"
57236
- [viewMode]="viewMode()"
57237
- [forceExpanded]="!isCompactView()"
57238
- />
57239
- @if (!last) {
57240
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
57241
- <symphiq-section-divider
57242
- [viewMode]="viewMode()"
57243
- [subsections]="sections()[idx + 1].subsections || []" />
57244
- </div>
57245
- }
57246
- }
57247
- }
57248
- </main>
57249
-
57250
- @if (!isSimplifiedView()) {
57251
- <symphiq-section-navigation
57252
- [sections]="sections()"
57253
- [viewMode]="viewMode()"
57254
- [embedded]="embedded()"
57255
- [scrollElement]="scrollElement() ?? undefined"
57256
- />
57257
- }
57258
-
57259
- @if (!isSimplifiedView()) {
57260
- <symphiq-floating-toc
57261
- [sections]="sections()"
57262
- [viewMode]="viewMode()"
57263
- [embedded]="embedded()"
57264
- [scrollElement]="scrollElement() ?? undefined"
57265
- />
57266
- }
57267
-
57268
- <symphiq-floating-back-button
57269
- [viewMode]="viewMode()"
57270
- [embedded]="embedded()"
57271
- />
57272
- </div>
57273
-
57274
- @if (isLoading()) {
57275
- <div [ngClass]="getLoadingOverlayClasses()">
57276
- <div [ngClass]="getSpinnerClasses()"></div>
57277
- </div>
57278
- }
57279
-
57280
- <symphiq-tooltip-container />
57281
- <symphiq-business-analysis-modal
57282
- [isLightMode]="isLightMode()"
57283
- (viewInContextRequested)="handleViewInContext($event)" />
57284
-
57285
- <symphiq-search-modal
57286
- [isLightMode]="isLightMode()"
57287
- [isOpen]="searchService.isSearchOpen()"
57288
- [searchQuery]="searchService.getSearchQuery()"
57289
- [results]="searchService.searchResults()"
57290
- [hasResults]="searchService.hasResults()"
57291
- [selectedIndex]="selectedSearchIndex()"
57292
- [placeholder]="'Search sections, items, and analysis...'"
57293
- (searchChange)="onSearchChange($event)"
57294
- (resultSelected)="onSearchResultSelected($event)"
57295
- (close)="closeSearch()"
57296
- />
57297
-
57298
- <symphiq-view-mode-switcher-modal
57299
- [isOpen]="isViewModeSwitcherOpen()"
57300
- [currentMode]="displayMode()"
57301
- [viewMode]="viewMode()"
57302
- [isLoading]="isViewModeSwitching()"
57303
- (close)="closeViewModeSwitcher()"
57304
- (modeSelected)="handleDisplayModeChange($event)"
57305
- />
57306
- </div>
57352
+ args: [{ selector: 'symphiq-business-analysis-dashboard', standalone: true, imports: [CommonModule, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
57353
+ <div [ngClass]="getContainerClasses()">
57354
+ <!-- Scroll Progress Bar (fixed at top) -->
57355
+ <div [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
57356
+ <div
57357
+ [style.width.%]="scrollProgress()"
57358
+ [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
57359
+ class="h-full transition-all duration-200 ease-out">
57360
+ </div>
57361
+ </div>
57362
+
57363
+ <div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
57364
+
57365
+ <div class="relative z-[51]">
57366
+ <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
57367
+ <!-- Expanded Header (default state) -->
57368
+ <div
57369
+ class="transition-all duration-300 ease-in-out overflow-hidden"
57370
+ [class.max-h-0]="headerScrollService.isScrolled()"
57371
+ [class.opacity-0]="headerScrollService.isScrolled()"
57372
+ [class.max-h-96]="!headerScrollService.isScrolled()"
57373
+ [class.opacity-100]="!headerScrollService.isScrolled()">
57374
+ <div
57375
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
57376
+ [class.pointer-events-none]="headerScrollService.isScrolled()"
57377
+ [class.pointer-events-auto]="!headerScrollService.isScrolled()">
57378
+ <div class="flex items-center justify-between">
57379
+ <div>
57380
+ <h1 [ngClass]="getMainTitleClasses()">
57381
+ {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57382
+ </h1>
57383
+ <p [ngClass]="getSubtitleClasses()">
57384
+ Business Profile & Analysis
57385
+ </p>
57386
+ </div>
57387
+ <div class="flex items-center gap-2">
57388
+ <symphiq-search-button
57389
+ [isLightMode]="isLightMode()"
57390
+ (searchClick)="openSearch()"
57391
+ />
57392
+ <button
57393
+ type="button"
57394
+ (click)="openViewModeSwitcher()"
57395
+ [ngClass]="getViewModeButtonClasses()"
57396
+ class="cursor-pointer flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
57397
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57398
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57399
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
57400
+ </svg>
57401
+ <span>{{ displayModeLabel() }}</span>
57402
+ </button>
57403
+ </div>
57404
+ </div>
57405
+ </div>
57406
+ </div>
57407
+
57408
+ <!-- Condensed Header (scrolled state) -->
57409
+ <div
57410
+ class="transition-all duration-300 ease-in-out overflow-hidden"
57411
+ [class.max-h-0]="!headerScrollService.isScrolled()"
57412
+ [class.opacity-0]="!headerScrollService.isScrolled()"
57413
+ [class.max-h-20]="headerScrollService.isScrolled()"
57414
+ [class.opacity-100]="headerScrollService.isScrolled()">
57415
+ <div
57416
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
57417
+ [class.pointer-events-none]="!headerScrollService.isScrolled()"
57418
+ [class.pointer-events-auto]="headerScrollService.isScrolled()">
57419
+ <div class="flex items-center justify-between">
57420
+ <div class="flex-1 min-w-0 mr-4">
57421
+ <h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent truncate'">
57422
+ {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57423
+ </h1>
57424
+ </div>
57425
+ <div class="flex items-center gap-4">
57426
+ @if (!isSimplifiedView()) {
57427
+ <div class="flex items-center gap-2 text-sm flex-shrink-0">
57428
+ <span [ngClass]="isLightMode() ? 'text-slate-600 font-medium' : 'text-slate-400 font-medium'" class="transition-opacity duration-300" [class.opacity-0]="sectionTitleFading()" [class.opacity-100]="!sectionTitleFading()">
57429
+ {{ currentSectionTitle() }}
57430
+ </span>
57431
+ @if (currentSubsectionTitle()) {
57432
+ <span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
57433
+ <span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
57434
+ {{ currentSubsectionTitle() }}
57435
+ </span>
57436
+ }
57437
+ </div>
57438
+ }
57439
+ <symphiq-search-button
57440
+ [isLightMode]="isLightMode()"
57441
+ [minimized]="true"
57442
+ (searchClick)="openSearch()"
57443
+ />
57444
+ <button
57445
+ type="button"
57446
+ (click)="openViewModeSwitcher()"
57447
+ [ngClass]="getViewModeButtonClasses()"
57448
+ class="cursor-pointer flex items-center gap-2 px-2 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
57449
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57450
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57451
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
57452
+ </svg>
57453
+ </button>
57454
+ </div>
57455
+ </div>
57456
+ </div>
57457
+ </div>
57458
+ </header>
57459
+
57460
+ <main class="relative">
57461
+ @if (isContentGenerating()) {
57462
+ <!-- Journey Progress Banner (always show when not onboarded) -->
57463
+ @if (!isOnboarded()) {
57464
+ <symphiq-journey-progress-indicator
57465
+ [viewMode]="viewMode()"
57466
+ [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
57467
+ [showNextStepAction]="false"
57468
+ [forDemo]="forDemo()"
57469
+ [maxAccessibleStepId]="maxAccessibleStepId()"
57470
+ (stepClick)="stepClick.emit($event)"
57471
+ (nextStepClick)="nextStepClick.emit()"
57472
+ />
57473
+ }
57474
+
57475
+ <!-- Content Generation Progress Component -->
57476
+ <symphiq-content-generation-progress
57477
+ [viewMode]="viewMode()"
57478
+ [title]="'We are generating a new Business Analysis for ' + (currentProfile()?.profileStructured?.businessName || 'your business') + '.'"
57479
+ [subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
57480
+ />
57481
+ } @else {
57482
+ @if (isSimplifiedView()) {
57483
+ <!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
57484
+ @if (!isOnboarded()) {
57485
+ <symphiq-journey-progress-indicator
57486
+ [viewMode]="viewMode()"
57487
+ [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
57488
+ [showNextStepAction]="showNextStepAction()"
57489
+ [forDemo]="forDemo()"
57490
+ [maxAccessibleStepId]="maxAccessibleStepId()"
57491
+ (stepClick)="stepClick.emit($event)"
57492
+ (nextStepClick)="nextStepClick.emit()"
57493
+ />
57494
+ }
57495
+
57496
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
57497
+ <div class="mb-8">
57498
+ <symphiq-welcome-banner
57499
+ [viewMode]="viewMode()"
57500
+ [businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
57501
+ [isOnboarded]="isOnboarded()"
57502
+ />
57503
+ </div>
57504
+
57505
+ <div class="mb-8">
57506
+ <symphiq-recommendations-tiled-grid
57507
+ [recommendations]="recommendationItems()"
57508
+ [viewMode]="viewMode()"
57509
+ (viewMoreClick)="openRecommendationDetailsModal($event)"
57510
+ />
57511
+ </div>
57512
+
57513
+ <div>
57514
+ <symphiq-collapsible-section-group
57515
+ [sections]="nonRecommendationSections()"
57516
+ [viewMode]="viewMode()"
57517
+ />
57518
+ </div>
57519
+ </div>
57520
+ } @else {
57521
+ @for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
57522
+ <symphiq-profile-section
57523
+ [section]="section"
57524
+ [viewMode]="viewMode()"
57525
+ [forceExpanded]="!isCompactView()"
57526
+ />
57527
+ @if (!last) {
57528
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
57529
+ <symphiq-section-divider
57530
+ [viewMode]="viewMode()"
57531
+ [subsections]="sections()[idx + 1].subsections || []" />
57532
+ </div>
57533
+ }
57534
+ }
57535
+ }
57536
+ }
57537
+ </main>
57538
+
57539
+ @if (!isSimplifiedView()) {
57540
+ <symphiq-section-navigation
57541
+ [sections]="sections()"
57542
+ [viewMode]="viewMode()"
57543
+ [embedded]="embedded()"
57544
+ [scrollElement]="scrollElement() ?? undefined"
57545
+ />
57546
+ }
57547
+
57548
+ @if (!isSimplifiedView()) {
57549
+ <symphiq-floating-toc
57550
+ [sections]="sections()"
57551
+ [viewMode]="viewMode()"
57552
+ [embedded]="embedded()"
57553
+ [scrollElement]="scrollElement() ?? undefined"
57554
+ />
57555
+ }
57556
+
57557
+ <symphiq-floating-back-button
57558
+ [viewMode]="viewMode()"
57559
+ [embedded]="embedded()"
57560
+ />
57561
+ </div>
57562
+
57563
+ @if (isLoading()) {
57564
+ <div [ngClass]="getLoadingOverlayClasses()">
57565
+ <div [ngClass]="getSpinnerClasses()"></div>
57566
+ </div>
57567
+ }
57568
+
57569
+ <symphiq-tooltip-container />
57570
+ <symphiq-business-analysis-modal
57571
+ [isLightMode]="isLightMode()"
57572
+ (viewInContextRequested)="handleViewInContext($event)" />
57573
+
57574
+ <symphiq-search-modal
57575
+ [isLightMode]="isLightMode()"
57576
+ [isOpen]="searchService.isSearchOpen()"
57577
+ [searchQuery]="searchService.getSearchQuery()"
57578
+ [results]="searchService.searchResults()"
57579
+ [hasResults]="searchService.hasResults()"
57580
+ [selectedIndex]="selectedSearchIndex()"
57581
+ [placeholder]="'Search sections, items, and analysis...'"
57582
+ (searchChange)="onSearchChange($event)"
57583
+ (resultSelected)="onSearchResultSelected($event)"
57584
+ (close)="closeSearch()"
57585
+ />
57586
+
57587
+ <symphiq-view-mode-switcher-modal
57588
+ [isOpen]="isViewModeSwitcherOpen()"
57589
+ [currentMode]="displayMode()"
57590
+ [viewMode]="viewMode()"
57591
+ [isLoading]="isViewModeSwitching()"
57592
+ (close)="closeViewModeSwitcher()"
57593
+ (modeSelected)="handleDisplayModeChange($event)"
57594
+ />
57595
+ </div>
57307
57596
  `, styles: [":host{display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-highlight{0%,to{transform:scale(1);box-shadow:0 0 #3b82f6b3}50%{transform:scale(1.02);box-shadow:0 0 20px 8px #3b82f64d}}:host ::ng-deep .search-highlight-pulse{animation:pulse-highlight 2s ease-in-out;border-color:#3b82f6!important}\n"] }]
57308
57597
  }], () => [], { embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], profile: [{ type: i0.Input, args: [{ isSignal: true, alias: "profile", required: false }] }], parentHeaderOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentHeaderOffset", required: false }] }], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], forDemo: [{ type: i0.Input, args: [{ isSignal: true, alias: "forDemo", required: false }] }], maxAccessibleStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxAccessibleStepId", required: false }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], onScroll: [{
57309
57598
  type: HostListener,
@@ -57312,7 +57601,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
57312
57601
  type: HostListener,
57313
57602
  args: ['document:keydown', ['$event']]
57314
57603
  }] }); })();
57315
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber: 303 }); })();
57604
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber: 327 }); })();
57316
57605
 
57317
57606
  function DashboardHeaderComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
57318
57607
  i0.ɵɵelement(0, "div", 6);
@@ -103072,5 +103361,5 @@ const PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS = ({
103072
103361
  * Generated bundle index. Do not edit.
103073
103362
  */
103074
103363
 
103075
- export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfidenceLevelCardComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE, PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqWelcomeDashboardComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
103364
+ export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE, PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqWelcomeDashboardComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
103076
103365
  //# sourceMappingURL=symphiq-components.mjs.map