@eric-emg/symphiq-components 1.2.367 → 1.2.368

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.
@@ -88531,19 +88531,17 @@ function ShopProfileQuestionAnswerComponent_Conditional_13_Template(rf, ctx) { i
88531
88531
  i0.ɵɵtextInterpolate1(" Shop > ", ctx_r1.breadcrumbPath(), " ");
88532
88532
  } }
88533
88533
  function ShopProfileQuestionAnswerComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
88534
- i0.ɵɵelementStart(0, "div", 32)(1, "div", 19)(2, "p", 33);
88535
- i0.ɵɵtext(3);
88536
- i0.ɵɵelementEnd()()();
88534
+ i0.ɵɵelementStart(0, "p", 13);
88535
+ i0.ɵɵtext(1);
88536
+ i0.ɵɵelementEnd();
88537
88537
  } if (rf & 2) {
88538
88538
  const ctx_r1 = i0.ɵɵnextContext();
88539
- i0.ɵɵstyleProp("grid-template-rows", ctx_r1.isSticky() ? "0fr" : "1fr")("opacity", ctx_r1.isSticky() ? 0 : 1);
88540
- i0.ɵɵadvance(2);
88541
88539
  i0.ɵɵproperty("ngClass", ctx_r1.contextTextClasses());
88542
88540
  i0.ɵɵadvance();
88543
88541
  i0.ɵɵtextInterpolate1(" ", ctx_r1.question().context, " ");
88544
88542
  } }
88545
- function ShopProfileQuestionAnswerComponent_Conditional_17_For_10_Template(rf, ctx) { if (rf & 1) {
88546
- i0.ɵɵelementStart(0, "span", 40);
88543
+ function ShopProfileQuestionAnswerComponent_Conditional_17_For_8_Template(rf, ctx) { if (rf & 1) {
88544
+ i0.ɵɵelementStart(0, "span", 38);
88547
88545
  i0.ɵɵtext(1);
88548
88546
  i0.ɵɵelementEnd();
88549
88547
  } if (rf & 2) {
@@ -88554,21 +88552,20 @@ function ShopProfileQuestionAnswerComponent_Conditional_17_For_10_Template(rf, c
88554
88552
  i0.ɵɵtextInterpolate1(" ", ctx_r1.getFocusAreaTitle(focusArea_r3), " ");
88555
88553
  } }
88556
88554
  function ShopProfileQuestionAnswerComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
88557
- i0.ɵɵelementStart(0, "div", 32)(1, "div", 19)(2, "div", 34)(3, "div", 35)(4, "span", 36);
88558
- i0.ɵɵtext(5);
88555
+ i0.ɵɵelementStart(0, "div", 14)(1, "div", 33)(2, "span", 34);
88556
+ i0.ɵɵtext(3);
88559
88557
  i0.ɵɵelementEnd();
88560
88558
  i0.ɵɵnamespaceSVG();
88561
- i0.ɵɵelementStart(6, "svg", 37);
88562
- i0.ɵɵelement(7, "path", 38);
88559
+ i0.ɵɵelementStart(4, "svg", 35);
88560
+ i0.ɵɵelement(5, "path", 36);
88563
88561
  i0.ɵɵelementEnd()();
88564
88562
  i0.ɵɵnamespaceHTML();
88565
- i0.ɵɵelementStart(8, "div", 39);
88566
- i0.ɵɵrepeaterCreate(9, ShopProfileQuestionAnswerComponent_Conditional_17_For_10_Template, 2, 2, "span", 40, i0.ɵɵrepeaterTrackByIdentity);
88567
- i0.ɵɵelementEnd()()()();
88563
+ i0.ɵɵelementStart(6, "div", 37);
88564
+ i0.ɵɵrepeaterCreate(7, ShopProfileQuestionAnswerComponent_Conditional_17_For_8_Template, 2, 2, "span", 38, i0.ɵɵrepeaterTrackByIdentity);
88565
+ i0.ɵɵelementEnd()();
88568
88566
  } if (rf & 2) {
88569
88567
  const ctx_r1 = i0.ɵɵnextContext();
88570
- i0.ɵɵstyleProp("grid-template-rows", ctx_r1.isSticky() ? "0fr" : "1fr")("opacity", ctx_r1.isSticky() ? 0 : 1);
88571
- i0.ɵɵadvance(4);
88568
+ i0.ɵɵadvance(2);
88572
88569
  i0.ɵɵproperty("ngClass", ctx_r1.relatedLabelClasses());
88573
88570
  i0.ɵɵadvance();
88574
88571
  i0.ɵɵtextInterpolate1(" Related to ", ctx_r1.relatedFocusAreas().length, " focus area(s) ");
@@ -88579,10 +88576,10 @@ function ShopProfileQuestionAnswerComponent_Conditional_17_Template(rf, ctx) { i
88579
88576
  } }
88580
88577
  function ShopProfileQuestionAnswerComponent_For_21_Template(rf, ctx) { if (rf & 1) {
88581
88578
  const _r4 = i0.ɵɵgetCurrentView();
88582
- i0.ɵɵelementStart(0, "label", 16)(1, "input", 41);
88579
+ i0.ɵɵelementStart(0, "label", 17)(1, "input", 39);
88583
88580
  i0.ɵɵlistener("change", function ShopProfileQuestionAnswerComponent_For_21_Template_input_change_1_listener() { const option_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleAnswer(option_r5.text)); });
88584
88581
  i0.ɵɵelementEnd();
88585
- i0.ɵɵelementStart(2, "span", 42);
88582
+ i0.ɵɵelementStart(2, "span", 40);
88586
88583
  i0.ɵɵtext(3);
88587
88584
  i0.ɵɵelementEnd()();
88588
88585
  } if (rf & 2) {
@@ -88598,7 +88595,7 @@ function ShopProfileQuestionAnswerComponent_For_21_Template(rf, ctx) { if (rf &
88598
88595
  } }
88599
88596
  function ShopProfileQuestionAnswerComponent_Conditional_32_Template(rf, ctx) { if (rf & 1) {
88600
88597
  const _r6 = i0.ɵɵgetCurrentView();
88601
- i0.ɵɵelementStart(0, "button", 43);
88598
+ i0.ɵɵelementStart(0, "button", 41);
88602
88599
  i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Conditional_32_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleAddOtherAnswers()); });
88603
88600
  i0.ɵɵtext(1, " Add other answers ");
88604
88601
  i0.ɵɵelementEnd();
@@ -88621,7 +88618,6 @@ class ShopProfileQuestionAnswerComponent {
88621
88618
  this.selectedAnswerTexts = signal([], ...(ngDevMode ? [{ debugName: "selectedAnswerTexts" }] : []));
88622
88619
  this.addOtherAnswersExpanded = signal(false, ...(ngDevMode ? [{ debugName: "addOtherAnswersExpanded" }] : []));
88623
88620
  this.customAnswerText = signal('', ...(ngDevMode ? [{ debugName: "customAnswerText" }] : []));
88624
- this.isSticky = signal(false, ...(ngDevMode ? [{ debugName: "isSticky" }] : []));
88625
88621
  this.answerOptions = computed(() => {
88626
88622
  const q = this.question();
88627
88623
  const potentialAnswers = q.potentialAnswers || [];
@@ -88681,8 +88677,6 @@ class ShopProfileQuestionAnswerComponent {
88681
88677
  this.saveButtonsDisabled = computed(() => {
88682
88678
  return this.selectedAnswerTexts().length === 0 || this.addOtherAnswersExpanded();
88683
88679
  }, ...(ngDevMode ? [{ debugName: "saveButtonsDisabled" }] : []));
88684
- this.lastScrollTop = 0;
88685
- this.scrollLogCount = 0;
88686
88680
  // Initialize selected answers from existing profile answers
88687
88681
  effect(() => {
88688
88682
  const questionId = this.question().id;
@@ -88691,32 +88685,6 @@ class ShopProfileQuestionAnswerComponent {
88691
88685
  .map(a => a.answer || '');
88692
88686
  this.selectedAnswerTexts.set(existingAnswers);
88693
88687
  });
88694
- // Log when isSticky changes
88695
- effect(() => {
88696
- const sticky = this.isSticky();
88697
- console.log(`[ScrollDebug] isSticky changed to: ${sticky}`);
88698
- });
88699
- }
88700
- onScroll() {
88701
- const container = this.scrollContainer?.nativeElement;
88702
- if (container) {
88703
- const scrollTop = container.scrollTop;
88704
- const scrollHeight = container.scrollHeight;
88705
- const clientHeight = container.clientHeight;
88706
- const wasSticky = this.isSticky();
88707
- const willBeSticky = scrollTop > 10;
88708
- // Detect scroll jumps (scroll position changed by more than 50px unexpectedly)
88709
- const scrollDelta = scrollTop - this.lastScrollTop;
88710
- const isJump = Math.abs(scrollDelta) > 50;
88711
- this.scrollLogCount++;
88712
- console.log(`[ScrollDebug #${this.scrollLogCount}] scrollTop: ${scrollTop.toFixed(1)}, delta: ${scrollDelta.toFixed(1)}, isJump: ${isJump}, wasSticky: ${wasSticky}, willBeSticky: ${willBeSticky}, scrollHeight: ${scrollHeight}, clientHeight: ${clientHeight}`);
88713
- if (isJump) {
88714
- console.warn(`[ScrollDebug] JUMP DETECTED! From ${this.lastScrollTop.toFixed(1)} to ${scrollTop.toFixed(1)} (delta: ${scrollDelta.toFixed(1)})`);
88715
- console.trace('[ScrollDebug] Stack trace for jump:');
88716
- }
88717
- this.lastScrollTop = scrollTop;
88718
- this.isSticky.set(willBeSticky);
88719
- }
88720
88688
  }
88721
88689
  toggleAnswer(text) {
88722
88690
  const current = this.selectedAnswerTexts();
@@ -88821,12 +88789,7 @@ class ShopProfileQuestionAnswerComponent {
88821
88789
  ? 'text-slate-500'
88822
88790
  : 'text-slate-400';
88823
88791
  }
88824
- stickyHeaderClasses() {
88825
- if (this.isSticky()) {
88826
- return this.isLightMode()
88827
- ? 'bg-white/95 backdrop-blur-sm'
88828
- : 'bg-slate-800/95 backdrop-blur-sm';
88829
- }
88792
+ questionHeaderClasses() {
88830
88793
  return this.isLightMode()
88831
88794
  ? 'bg-transparent'
88832
88795
  : 'bg-transparent';
@@ -88922,11 +88885,9 @@ class ShopProfileQuestionAnswerComponent {
88922
88885
  } if (rf & 2) {
88923
88886
  let _t;
88924
88887
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollContainer = _t.first);
88925
- } }, inputs: { question: [1, "question"], viewMode: [1, "viewMode"], viewType: [1, "viewType"], selectedCategoryId: [1, "selectedCategoryId"], selectedFocusAreaId: [1, "selectedFocusAreaId"], filteredQuestions: [1, "filteredQuestions"], profileShopAnswers: [1, "profileShopAnswers"] }, outputs: { backClick: "backClick", saveClick: "saveClick", saveAndNextClick: "saveAndNextClick" }, decls: 42, vars: 34, consts: [["scrollContainer", ""], [1, "flex", "flex-col", "h-full"], [1, "flex-1", "overflow-y-auto", 3, "scroll"], [1, "px-6", "py-4", "border-b", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], [1, "flex-1"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "transition-all", "duration-500", "ease-out", "rounded-full", 3, "ngClass"], [1, "text-sm", "font-medium", "whitespace-nowrap", 3, "ngClass"], [1, "sticky", "top-0", "z-10", "px-6", "py-4", "transition-all", "duration-300", 3, "ngClass"], [1, "text-sm", "italic", "mb-2", 3, "ngClass"], [1, "font-bold", "transition-all", "duration-300", 3, "ngClass"], [1, "grid", "transition-[grid-template-rows,opacity]", "duration-300", "ease-in-out", 3, "grid-template-rows", "opacity"], [1, "px-6", "py-6"], [1, "space-y-3", "mb-4"], [1, "flex", "items-start", "gap-3", "p-4", "rounded-lg", "cursor-pointer", "transition-all", "duration-200", "hover:scale-[1.01]", 3, "ngClass"], [1, "mb-6"], [1, "grid", "transition-[grid-template-rows]", "duration-300", "ease-in-out"], [1, "overflow-hidden", "min-h-0"], [1, "pb-4"], ["rows", "5", "placeholder", "Enter your answer(s) here, separated by returns.", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "text-sm", "resize-y", "transition-colors", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "ngModelChange", "ngModel", "ngClass"], [1, "flex", "items-center", "gap-3", "mt-3"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "active:scale-95", 3, "click", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "disabled:opacity-50", "disabled:cursor-not-allowed", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "ngClass"], [1, "px-6", "py-4", "border-t", "sticky", "bottom-0", "z-10", 3, "ngClass"], [1, "flex", "items-center", "gap-4"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.02]", "active:scale-95", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.01]", "active:scale-[0.99]", "disabled:hover:scale-100", 3, "click", "disabled", "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"], [1, "grid", "transition-[grid-template-rows,opacity]", "duration-300", "ease-in-out"], [1, "text-sm", "leading-relaxed", "mt-3", 3, "ngClass"], [1, "mt-4"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xs", "font-semibold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1.5", "rounded-full", "text-xs", "font-medium", 3, "ngClass"], ["type", "checkbox", 1, "mt-0.5", "w-5", "h-5", "rounded", "border-2", "cursor-pointer", "transition-all", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "change", "checked", "ngClass"], [1, "text-base", "flex-1", 3, "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "click", "ngClass"]], template: function ShopProfileQuestionAnswerComponent_Template(rf, ctx) { if (rf & 1) {
88888
+ } }, inputs: { question: [1, "question"], viewMode: [1, "viewMode"], viewType: [1, "viewType"], selectedCategoryId: [1, "selectedCategoryId"], selectedFocusAreaId: [1, "selectedFocusAreaId"], filteredQuestions: [1, "filteredQuestions"], profileShopAnswers: [1, "profileShopAnswers"] }, outputs: { backClick: "backClick", saveClick: "saveClick", saveAndNextClick: "saveAndNextClick" }, decls: 42, vars: 28, consts: [["scrollContainer", ""], [1, "flex", "flex-col", "h-full"], [1, "flex-1", "overflow-y-auto"], [1, "px-6", "py-4", "border-b", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], [1, "flex-1"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "transition-all", "duration-500", "ease-out", "rounded-full", 3, "ngClass"], [1, "text-sm", "font-medium", "whitespace-nowrap", 3, "ngClass"], [1, "px-6", "py-4", 3, "ngClass"], [1, "text-sm", "italic", "mb-2", 3, "ngClass"], [1, "font-bold", "text-lg", 3, "ngClass"], [1, "text-sm", "leading-relaxed", "mt-3", 3, "ngClass"], [1, "mt-4"], [1, "px-6", "py-6"], [1, "space-y-3", "mb-4"], [1, "flex", "items-start", "gap-3", "p-4", "rounded-lg", "cursor-pointer", "transition-all", "duration-200", "hover:scale-[1.01]", 3, "ngClass"], [1, "mb-6"], [1, "grid", "transition-[grid-template-rows]", "duration-300", "ease-in-out"], [1, "overflow-hidden", "min-h-0"], [1, "pb-4"], ["rows", "5", "placeholder", "Enter your answer(s) here, separated by returns.", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "text-sm", "resize-y", "transition-colors", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "ngModelChange", "ngModel", "ngClass"], [1, "flex", "items-center", "gap-3", "mt-3"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "active:scale-95", 3, "click", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "disabled:opacity-50", "disabled:cursor-not-allowed", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "ngClass"], [1, "px-6", "py-4", "border-t", "sticky", "bottom-0", "z-10", 3, "ngClass"], [1, "flex", "items-center", "gap-4"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.02]", "active:scale-95", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.01]", "active:scale-[0.99]", "disabled:hover:scale-100", 3, "click", "disabled", "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"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xs", "font-semibold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1.5", "rounded-full", "text-xs", "font-medium", 3, "ngClass"], ["type", "checkbox", 1, "mt-0.5", "w-5", "h-5", "rounded", "border-2", "cursor-pointer", "transition-all", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "change", "checked", "ngClass"], [1, "text-base", "flex-1", 3, "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "click", "ngClass"]], template: function ShopProfileQuestionAnswerComponent_Template(rf, ctx) { if (rf & 1) {
88926
88889
  const _r1 = i0.ɵɵgetCurrentView();
88927
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 2, 0);
88928
- i0.ɵɵlistener("scroll", function ShopProfileQuestionAnswerComponent_Template_div_scroll_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onScroll()); });
88929
- i0.ɵɵelementStart(3, "div", 3)(4, "h4", 4);
88890
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2, 0)(3, "div", 3)(4, "h4", 4);
88930
88891
  i0.ɵɵtext(5, " Unanswered questions status ");
88931
88892
  i0.ɵɵelementEnd();
88932
88893
  i0.ɵɵelementStart(6, "div", 5)(7, "div", 6)(8, "div", 7);
@@ -88940,37 +88901,37 @@ class ShopProfileQuestionAnswerComponent {
88940
88901
  i0.ɵɵelementStart(14, "h2", 12);
88941
88902
  i0.ɵɵtext(15);
88942
88903
  i0.ɵɵelementEnd();
88943
- i0.ɵɵconditionalCreate(16, ShopProfileQuestionAnswerComponent_Conditional_16_Template, 4, 6, "div", 13);
88944
- i0.ɵɵconditionalCreate(17, ShopProfileQuestionAnswerComponent_Conditional_17_Template, 11, 7, "div", 13);
88904
+ i0.ɵɵconditionalCreate(16, ShopProfileQuestionAnswerComponent_Conditional_16_Template, 2, 2, "p", 13);
88905
+ i0.ɵɵconditionalCreate(17, ShopProfileQuestionAnswerComponent_Conditional_17_Template, 9, 3, "div", 14);
88945
88906
  i0.ɵɵelementEnd();
88946
- i0.ɵɵelementStart(18, "div", 14)(19, "div", 15);
88947
- i0.ɵɵrepeaterCreate(20, ShopProfileQuestionAnswerComponent_For_21_Template, 4, 5, "label", 16, _forTrack0$2);
88907
+ i0.ɵɵelementStart(18, "div", 15)(19, "div", 16);
88908
+ i0.ɵɵrepeaterCreate(20, ShopProfileQuestionAnswerComponent_For_21_Template, 4, 5, "label", 17, _forTrack0$2);
88948
88909
  i0.ɵɵelementEnd();
88949
- i0.ɵɵelementStart(22, "div", 17)(23, "div", 18)(24, "div", 19)(25, "div", 20)(26, "textarea", 21);
88910
+ i0.ɵɵelementStart(22, "div", 18)(23, "div", 19)(24, "div", 20)(25, "div", 21)(26, "textarea", 22);
88950
88911
  i0.ɵɵtwoWayListener("ngModelChange", function ShopProfileQuestionAnswerComponent_Template_textarea_ngModelChange_26_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.customAnswerText, $event) || (ctx.customAnswerText = $event); return i0.ɵɵresetView($event); });
88951
88912
  i0.ɵɵelementEnd();
88952
- i0.ɵɵelementStart(27, "div", 22)(28, "button", 23);
88913
+ i0.ɵɵelementStart(27, "div", 23)(28, "button", 24);
88953
88914
  i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.cancelCustomAnswers()); });
88954
88915
  i0.ɵɵtext(29, " Cancel ");
88955
88916
  i0.ɵɵelementEnd();
88956
- i0.ɵɵelementStart(30, "button", 24);
88917
+ i0.ɵɵelementStart(30, "button", 25);
88957
88918
  i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.addCustomAnswers()); });
88958
88919
  i0.ɵɵtext(31, " Add ");
88959
88920
  i0.ɵɵelementEnd()()()()();
88960
- i0.ɵɵconditionalCreate(32, ShopProfileQuestionAnswerComponent_Conditional_32_Template, 2, 1, "button", 25);
88921
+ i0.ɵɵconditionalCreate(32, ShopProfileQuestionAnswerComponent_Conditional_32_Template, 2, 1, "button", 26);
88961
88922
  i0.ɵɵelementEnd()()();
88962
- i0.ɵɵelementStart(33, "div", 26)(34, "div", 27)(35, "button", 28);
88923
+ i0.ɵɵelementStart(33, "div", 27)(34, "div", 28)(35, "button", 29);
88963
88924
  i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_35_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSave()); });
88964
88925
  i0.ɵɵtext(36, " Save ");
88965
88926
  i0.ɵɵelementEnd();
88966
- i0.ɵɵelementStart(37, "button", 29);
88927
+ i0.ɵɵelementStart(37, "button", 30);
88967
88928
  i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_37_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSaveAndNext()); });
88968
88929
  i0.ɵɵelementStart(38, "span");
88969
88930
  i0.ɵɵtext(39, "Save & next unanswered");
88970
88931
  i0.ɵɵelementEnd();
88971
88932
  i0.ɵɵnamespaceSVG();
88972
- i0.ɵɵelementStart(40, "svg", 30);
88973
- i0.ɵɵelement(41, "path", 31);
88933
+ i0.ɵɵelementStart(40, "svg", 31);
88934
+ i0.ɵɵelement(41, "path", 32);
88974
88935
  i0.ɵɵelementEnd()()()()();
88975
88936
  } if (rf & 2) {
88976
88937
  i0.ɵɵadvance(3);
@@ -88987,12 +88948,10 @@ class ShopProfileQuestionAnswerComponent {
88987
88948
  i0.ɵɵadvance();
88988
88949
  i0.ɵɵtextInterpolate2(" ", ctx.answeredCount(), " / ", ctx.totalCount(), " answered ");
88989
88950
  i0.ɵɵadvance();
88990
- i0.ɵɵclassProp("shadow-md", ctx.isSticky());
88991
- i0.ɵɵproperty("ngClass", ctx.stickyHeaderClasses());
88951
+ i0.ɵɵproperty("ngClass", ctx.questionHeaderClasses());
88992
88952
  i0.ɵɵadvance();
88993
88953
  i0.ɵɵconditional(ctx.viewType() !== "all" ? 13 : -1);
88994
88954
  i0.ɵɵadvance();
88995
- i0.ɵɵclassProp("text-xl", !ctx.isSticky())("text-lg", ctx.isSticky());
88996
88955
  i0.ɵɵproperty("ngClass", ctx.questionTextClasses());
88997
88956
  i0.ɵɵadvance();
88998
88957
  i0.ɵɵtextInterpolate1(" ", ctx.question().question, " ");
@@ -89046,7 +89005,7 @@ class ShopProfileQuestionAnswerComponent {
89046
89005
  template: `
89047
89006
  <div class="flex flex-col h-full">
89048
89007
  <!-- Scrollable Content -->
89049
- <div #scrollContainer class="flex-1 overflow-y-auto" (scroll)="onScroll()">
89008
+ <div #scrollContainer class="flex-1 overflow-y-auto">
89050
89009
  <!-- Unanswered Questions Status -->
89051
89010
  <div [ngClass]="statusHeaderClasses()" class="px-6 py-4 border-b">
89052
89011
  <h4 [ngClass]="statusTitleClasses()" class="text-sm font-semibold mb-3">
@@ -89067,8 +89026,8 @@ class ShopProfileQuestionAnswerComponent {
89067
89026
  </div>
89068
89027
  </div>
89069
89028
 
89070
- <!-- Sticky Question Header -->
89071
- <div [ngClass]="stickyHeaderClasses()" class="sticky top-0 z-10 px-6 py-4 transition-all duration-300" [class.shadow-md]="isSticky()">
89029
+ <!-- Question Header -->
89030
+ <div [ngClass]="questionHeaderClasses()" class="px-6 py-4">
89072
89031
  <!-- Breadcrumb - hide for All Questions mode -->
89073
89032
  @if (viewType() !== 'all') {
89074
89033
  <div [ngClass]="breadcrumbClasses()" class="text-sm italic mb-2">
@@ -89077,48 +89036,34 @@ class ShopProfileQuestionAnswerComponent {
89077
89036
  }
89078
89037
 
89079
89038
  <!-- Question -->
89080
- <h2 [ngClass]="questionTextClasses()" class="font-bold transition-all duration-300" [class.text-xl]="!isSticky()" [class.text-lg]="isSticky()">
89039
+ <h2 [ngClass]="questionTextClasses()" class="font-bold text-lg">
89081
89040
  {{ question().question }}
89082
89041
  </h2>
89083
89042
 
89084
- <!-- Context - collapse smoothly when sticky -->
89043
+ <!-- Context -->
89085
89044
  @if (question().context) {
89086
- <div
89087
- class="grid transition-[grid-template-rows,opacity] duration-300 ease-in-out"
89088
- [style.grid-template-rows]="isSticky() ? '0fr' : '1fr'"
89089
- [style.opacity]="isSticky() ? 0 : 1">
89090
- <div class="overflow-hidden min-h-0">
89091
- <p [ngClass]="contextTextClasses()" class="text-sm leading-relaxed mt-3">
89092
- {{ question().context }}
89093
- </p>
89094
- </div>
89095
- </div>
89045
+ <p [ngClass]="contextTextClasses()" class="text-sm leading-relaxed mt-3">
89046
+ {{ question().context }}
89047
+ </p>
89096
89048
  }
89097
89049
 
89098
- <!-- Related Focus Areas - collapse smoothly when sticky -->
89050
+ <!-- Related Focus Areas -->
89099
89051
  @if (relatedFocusAreas().length > 0) {
89100
- <div
89101
- class="grid transition-[grid-template-rows,opacity] duration-300 ease-in-out"
89102
- [style.grid-template-rows]="isSticky() ? '0fr' : '1fr'"
89103
- [style.opacity]="isSticky() ? 0 : 1">
89104
- <div class="overflow-hidden min-h-0">
89105
- <div class="mt-4">
89106
- <div class="flex items-center gap-2 mb-2">
89107
- <span [ngClass]="relatedLabelClasses()" class="text-xs font-semibold">
89108
- Related to {{ relatedFocusAreas().length }} focus area(s)
89109
- </span>
89110
- <svg class="w-4 h-4" [ngClass]="relatedLabelClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89111
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
89112
- </svg>
89113
- </div>
89114
- <div class="flex flex-wrap gap-2">
89115
- @for (focusArea of relatedFocusAreas(); track focusArea) {
89116
- <span [ngClass]="focusAreaChipClasses()" class="px-3 py-1.5 rounded-full text-xs font-medium">
89117
- {{ getFocusAreaTitle(focusArea) }}
89118
- </span>
89119
- }
89120
- </div>
89121
- </div>
89052
+ <div class="mt-4">
89053
+ <div class="flex items-center gap-2 mb-2">
89054
+ <span [ngClass]="relatedLabelClasses()" class="text-xs font-semibold">
89055
+ Related to {{ relatedFocusAreas().length }} focus area(s)
89056
+ </span>
89057
+ <svg class="w-4 h-4" [ngClass]="relatedLabelClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89058
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
89059
+ </svg>
89060
+ </div>
89061
+ <div class="flex flex-wrap gap-2">
89062
+ @for (focusArea of relatedFocusAreas(); track focusArea) {
89063
+ <span [ngClass]="focusAreaChipClasses()" class="px-3 py-1.5 rounded-full text-xs font-medium">
89064
+ {{ getFocusAreaTitle(focusArea) }}
89065
+ </span>
89066
+ }
89122
89067
  </div>
89123
89068
  </div>
89124
89069
  }
@@ -89223,7 +89168,7 @@ class ShopProfileQuestionAnswerComponent {
89223
89168
  type: ViewChild,
89224
89169
  args: ['scrollContainer']
89225
89170
  }] }); })();
89226
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileQuestionAnswerComponent, { className: "ShopProfileQuestionAnswerComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-question-answer.component.ts", lineNumber: 215 }); })();
89171
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileQuestionAnswerComponent, { className: "ShopProfileQuestionAnswerComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-question-answer.component.ts", lineNumber: 201 }); })();
89227
89172
 
89228
89173
  const _c0$4 = ["modalContent"];
89229
89174
  const _c1$1 = ["modalWrapper"];